エクセルVBAからDOSコマンドを実行するには? 削除


Message#1 2015年2月12日(木)09時06分
From: くわおとろ
エクセルVBAからDOSコマンドを実行するにはどうしたらいいでしょうか?

エクセルVBAからDOSコマンド(tree)を実行してエクセルのセルにDOSコマンドで取得したツリーの一覧を取り込もうと考えています。
色々なサイトで同様の処理について書かれている処理を試してみたのですが、プロンプト画面は立ち上がったもののその後の処理がうまくいきません。
このプロンプト画面を閉じると一応実行結果がセルに取り込まれるのですが、このままでは途中の進捗状況が分かりません。
こちらをうまく回避できる方法がありましたら、教えてください。
一応以下が色々なサイトのやつから自分なりに構築したVBAコードとなります。
よろしくお願いいたします。

Sub sample()
  Dim tmp, i As Long
 Dim Pr_tree, Pr_Exec, Dos_cmd, Result As String

  Set Pr_tree = CreateObject("WScript.Shell")
 Dos_cmd = "tree c:\"

 Set Pr_Exec = Pr_tree.Exec("%ComSpec% /c " & Dos_cmd)
 Do While Pr_Exec.Status = 0
  DoEvents
 Loop

 Result = Pr_Exec.StdOut.ReadAll
 tmp = Split(Result, vbCrLf)
 For i = 0 To UBound(tmp)
  Cells(i + 1, 1) = tmp(i)
 Next

 Set Pr_Exec = Nothing
 Set Pr_tree = Nothing

 MsgBox "ディレクトリ情報を取得しました。"

End Sub

上のメッセージを削除します。
よければパスワードを入力し、削除ボタンをクリックしてください。

パスワード:

ExcelのVBAについてのQ&A掲示板

↑ExcelのVBA全般について分からない事があればこちらの掲示板よりご質問ください^^

VBAのInternetExplorer操作入門

↑ExcelのVBAをマスターできたら、エクセルVBAのIE(InternetExplorer)操作にも挑戦してみてください^^

VBAのIE制御入門RSS

RSSフィードを登録すると最新記事を受け取ることができます。

VBAIE操作のスカイプレッスン

エクセルVBAのステートメント

こちらでは、エクセルVBAの事例で利用したステートメントをまとめたものです。ExcelのVBAには様々な機能が用意されていますので一度ご確認ください。

エクセルVBAのオブジェクト

こちらでは、エクセルVBAの事例で利用したオブジェクトをまとめたものです。ExcelのVBAには様々な機能が用意されていますので一度ご確認ください。

エクセルVBAのプロパティ

こちらでは、エクセルVBAの事例で利用したオブジェクトのプロパティをまとめたものです。ExcelのVBAには様々な機能が用意されていますので一度ご確認ください。

エクセルVBAのメソッド

こちらでは、エクセルVBAの事例で利用したオブジェクトのメソッドをまとめたものです。ExcelのVBAには様々な機能が用意されていますので一度ご確認ください。

エクセルVBAのイベント

こちらでは、エクセルVBAの事例で利用したオブジェクトのイベントをまとめたものです。ExcelのVBAには様々な機能が用意されていますので一度ご確認ください。

dmb.cgi Ver. 1.068
Copyright(C) 1997-2014, hidekik.com