以下のSample1
とSample2
はどちらもC:\Temp
のサブディレクトも含めたファイル一覧を取得する関数です。
Sample1
は'Sample2'よりも実行時間が短いですが、コマンドプロンプトが表示されてしまいます。
質問①Sample1
でコマンドプロンプトを画面表示させない方法はありますか?
質問②Sample1
,Sample2
以外に素早くファイル一覧を取得できるような方法はありますか?
Sub Sample1() Dim WSH, wExec, sCmd As String, Result As String Set WSH = CreateObject("WScript.Shell") sCmd = "dir /B /S C:\Temp" Set wExec = WSH.Exec("%ComSpec% /c " & sCmd) Do While wExec.Status = 0 DoEvents Loop Result = wExec.StdOut.ReadAll MsgBox Result Set wExec = Nothing Set WSH = Nothing End Sub
Sub Sample2() Call FileSearch("C:\Temp") End Sub Sub FileSearch(Path As String) Dim FSO As Object, Folder As Variant, File As Variant Set FSO = CreateObject("Scripting.FileSystemObject") For Each Folder In FSO.GetFolder(Path).SubFolders Call FileSearch(Folder.Path) Next Folder For Each File In FSO.GetFolder(Path).Files Debug.Print File.Path Next File End Sub
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。
退会済みユーザー
2017/07/16 20:57