フォルダ内のファイルをリストにして確認するスクリプトです。
下記のスクリプトをXXX(任意のファイル名).vbsで保存します。
保存したファイルをクリックすると、入力画面が表示されるので、調べたいフォルダのパスを入力して、OKを押してください。
すると、vbsがあるフォルダの中に、Files.xlsxという名前でファイルリストが作成されます。
Set objFS = CreateObject("Scripting.FileSystemObject")
Set objExcel = CreateObject("Excel.Application")
objExcel.Visible = True
Set objWorkbook = objExcel.Workbooks.Add()
Set objWorksheet = objWorkbook.Sheets(1)
' ヘッダー行の設定
objWorksheet.Cells(1, 1).Value = "フォルダパス"
objWorksheet.Cells(1, 2).Value = "ファイルパス"
intRow = 2 ' データ行の開始位置
' ユーザーからの入力を受け取る
strInput = InputBox("ファイルパスを入力:", "入力")
strFolderPath = strInput ' フォルダのパスを指定
' フォルダ内のファイルとフォルダを処理
ProcessFolder strFolderPath
' 出力したデータを自動調整
objWorksheet.UsedRange.Columns.AutoFit
' エクセルファイルを保存
' 実行中のスクリプトファイルのフルパスを取得
strScriptPath = WScript.ScriptFullName
' スクリプトファイルのディレクトリパスを取得
strScriptFolder = objFS.GetParentFolderName(strScriptPath)
strOutputFilePath = strScriptFolder & "\Files.xlsx" ' 出力先のファイルパスを指定
objWorkbook.SaveAs strOutputFilePath
' オブジェクトの参照を解放
Set objWorksheet = Nothing
objWorkbook.Close
objExcel.Quit
Set objExcel = Nothing
Set objFS = Nothing
'================================================================
' フォルダ内のファイルとサブフォルダを再帰的に処理するサブルーチン
'----------------------------------------------------------------
Sub ProcessFolder(strFolderPath)
Set objFSO = CreateObject("Scripting.FileSystemObject")
Set objFolder = objFSO.GetFolder(strFolderPath)
' フォルダ内のファイルを処理
For Each objFile In objFolder.Files
' ファイルパスを出力
objWorksheet.Cells(intRow, 2).Value = objFile.Path
intRow = intRow + 1
Next
' サブフォルダを再帰的に処理
For Each objSubFolder In objFolder.SubFolders
' フォルダパスを出力
objWorksheet.Cells(intRow, 1).Value = objSubFolder.Path
intRow = intRow + 1
' サブフォルダ内のファイルとサブフォルダを再帰的に処理
ProcessFolder objSubFolder.Path
Next
' オブジェクトの参照を解放
Set objSubFolder = Nothing
Set objFile = Nothing
Set objFolder = Nothing
Set objFSO = Nothing
End Sub
'==============================================================