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

最近の書き込み件数: 今日 0件、昨日 0件
未読分:3件

最新20件 最新50件 最新100件 最新200件 200件以前
昨日以降(0) 2日前以降(0) 3日前以降(0) 4日前以降(0) 5日前以降(0)


Excel VBAでIEを思いのままに操作できるプログラミング術 Excel 2013/2010/2007/2003対応

近田 伸矢, 植木 悠二, 上田 寛

IEのデータ収集&自動操作のプログラミング本はこの1冊だけ!IEの起動やポップアップウィンドウ、表示を制御する基本的なコードはもちろん、テキストボックスやラジオボタン、表、ハイパーリンクなどのHTML部品を制御する方法など、自動操作に欠かせないノウハウを丁寧に解説。

Message#3 2015年2月12日(木)09時47分
From: くわおとろ
返事 削除 変更
回答ありがとうございます。

はい、cドライブです。
しかし、コマンドプロンプトからtreeコマンドで処理させると1分程度でcドライブのツリー情報を取得できていました。

ただし、エクセルVBAから処理を行うとなぜか20分以上かかってしまい、しかもプロンプト自体を終了させることができません。

これなら手動でプロンプト処理をした画面をコピペして張り付けたほうが早いのですが、どうにかVBAで処理できないか考えています。

Message#2 2015年2月12日(木)09時44分
From: WebVBA
返事 削除 変更
これってcドライブのツリーデータ全て出力させるつもりですか?

Dos_cmd = "tree c:\"

かなり数があると思いますが・・・・

おそらく処理が完了していないのではなく処理中だと思います。

そのままほっとけば最後まで処理され表示してくれると思いますよ。

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

最新20件 最新50件 最新100件 最新200件 200件以前
昨日以降 2日前以降 3日前以降 4日前以降 5日前以降

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