Excel VBA質問箱 IV

当質問箱は、有志のボランティア精神のおかげで成り立っています。
問題が解決したら、必ずお礼をしましょうね。
本サイトの基本方針をまとめました。こちら をご一読ください。

投稿種別の選択が必要です。ご注意ください。
迷惑投稿防止のため、URLの入力を制限しています。ご了承ください。


13450 / 13646 ツリー ←次へ | 前へ→

【5338】Shell関数で実行した結果取得 NECRO 03/5/7(水) 13:05 質問
【5346】Re:Shell関数で実行した結果取得 Kein 03/5/7(水) 15:15 回答
【5360】Re:Shell関数で実行した結果取得 NECRO 03/5/8(木) 9:49 質問
【5365】Re:Shell関数で実行した結果取得 Kein 03/5/8(木) 15:00 回答
【5369】できました!ありがとうございました。 NECRO 03/5/8(木) 15:38 お礼

【5338】Shell関数で実行した結果取得
質問  NECRO  - 03/5/7(水) 13:05 -

引用なし
パスワード
   みなさん、こんにちは。

現在、Shell関数で実行した結果をリダイレクトでファイルに出力していますが、
ファイルを経由させずに直接変数やセルにセットすることは可能でしょうか?

例)
Shell("COMMAND.COM /C CD")
この結果が "D:\MYDOC" だとすると、その文字列を変数、またはセルに直接
セットする。(実際にはNTからRSHを発行して帰ってきた値を取得したい。)

不可能であれば「不可能だ」という回答でも構いませんので、
どうかよろしくお願いします。

【5346】Re:Shell関数で実行した結果取得
回答  Kein  - 03/5/7(水) 15:15 -

引用なし
パスワード
   WSH5.6から実装されている、WshShellオブジェクトのExecメソッドを使い
それが返すオブジェクトで、StdOutチャンネルにアクセスする。という方法が
あるようです。

Declare Sub Sleep Lib "kernel32.dll" (ByVal dwMilliseconds As Long)
Sub MyTest_Std()
  Dim WShell As Object, oExec As Object
  Dim Buf As String
 
  Set WShell = CreateObject("WScript.Shell")
  Set oExec = WShell.Exec("Command.com /C CD") 'NT系のOSなら cmd.exe
  Do Until oExec.StdOut.AtEndOfStream
   Buf = Buf & oExec.StdOut.ReadLine
   If oExec.Status = 1 Then Exit Do
   Sleep 100
  Loop
  MsgBox Buf
  Set oExec = Nothing: Set WShell = Nothing
End Sub

【5360】Re:Shell関数で実行した結果取得
質問  NECRO  - 03/5/8(木) 9:49 -

引用なし
パスワード
   Keinさん、すばやい回答ありがとうございます。

そのままコピペして試してみたところ、"WShell.Exec"の行で、以下のような
エラーが出てしまいます。
---
実行時エラー'438':
オブジェクトは、このプロパティまたはメソッドをサポートしていません。
---

ローカルウィンドウで確認してもWShellのプロパティ、メソッドは以下の2つしか
出てこない状態です。
---
WShell
|- SpecialFolders
  |- length
---

環境に問題ありでしょうか...。
実行環境は以下のようになっています。
Win NT 4.00
Excel 97
wshom.ocx 5.1.0.4615

なにかわかりましたらよろしくお願いします。

【5365】Re:Shell関数で実行した結果取得
回答  Kein  - 03/5/8(木) 15:00 -

引用なし
パスワード
   初めに書いたように "WSH5.6"から追加されたメソッドです。
↓ここで最新版をインストールして下さい。
http://wwwroy.hi-ho.ne.jp/mutaguchi/wsh/install.htm

【5369】できました!ありがとうございました。
お礼  NECRO  - 03/5/8(木) 15:38 -

引用なし
パスワード
   Keinさん、できました!ありがとうございました。

13450 / 13646 ツリー ←次へ | 前へ→
ページ:  ┃  記事番号:
2610219
(SS)C-BOARD v3.8 is Free