#725 | DOSコマンドを使ったファイル一覧の取得方法 | VBA | |
DOSコマンドを利用すると、VBAでは複雑になってしまう処理も簡単に実行させられることがあります。ここではその一例を紹介します。 この例では、DOSコマンドのひとつである「Dir」コマンドに「/s」と「/b」オプションを付けることでサブフォルダも含めたファイル名のみの探索を行い、さらに「> ファイルパス名」によるリダイレクトを行うことでその結果をテキストファイルに出力します(ここまでがひとつのDOSコマンドになります)。 そして、そのテキストファイルをVBAで読み込むことによって、見つかった1つ1つのファイル名に対していろいろな処理を行うことができます(ここでは単にフルパスをイミディエイトウィンドウに出力するだけですが)。 サンプルプロシージャ: Sub DosCmdSample() Dim objShell As Object Dim strCommand As String Dim lngFileNum As Long Dim strInData As String Const strDirFile As String = "D:\Dir.txt" '出力先ファイルのパス 'DOSコマンドの組み立て strCommand = "Dir D:\HomePage\tips\*_70* /s /b > " & strDirFile 'DOSコマンドの実行 Set objShell = CreateObject("WScript.Shell") objShell.Run "cmd.exe /c " & strCommand, 0, True '出力先ファイルの読み込み lngFileNum = FreeFile() Open strDirFile For Input As #lngFileNum '全行を読み込むループ Do Until EOF(lngFileNum) '1行読み込み Line Input #lngFileNum, strInData 'イミディエイトウィンドウに出力 Debug.Print strInData Loop Close #lngFileNum End Sub
実行例: ■実行後のテキストファイルの内容
■実行後のイミディエイトウィンドウ |
|||
|
Copyright © T'sWare All rights reserved |