【今から 始める 】Excel VBA ( 初心者 ー ルール (2))
k.w
SEへの道
エクスプローラなどでファイル名検索できますが、 ファイル一覧 を出力できれば便利な時ありませんか?windouwsであればコマンドプロンプトで実行可能ですが、Excel VBA でファイルの一覧も 取得 / 出力可能です。一度作っておけば便利になること間違いなし?
指定フォルダに保存されているファイル名一覧を出力する。(サブフォルダも含む)
再帰呼び出し(自分で自分のプロシージャを実行する)を行い、サブフォルダーパス以下にフォルダがなくなるまで処理します。
Sub FileListUP()
With Application.FileDialog(msoFileDialogFolderPicker) '----(1)
If .show = True Then
Cells.ClearContents
Cells(1,1).Value = "ファイル一覧"
Call Output(.SelectedItem(1))
MsgBox "ファイルの一覧が作成されました"
End If
End With
End Sub
Sub Output(Path)
Dim FileName As String , o As Object
FileName = Dir(Path & "\*.*") '----(2)
Do While FileName <> "" '----(3)
Cells(Rows.Count , 1).End(xlUp).Offset(1 , 0).Value = Path & "\" & FileName
FileName = Dir()
Loop
For Each o In CreateObject("Scripting.FileSystemObject").GetFolder(Path).SubFolders '----(4)
Call Output(o.Path) '----(5)
Next o
End Sub
これで指定したフォルダ以下のファイル名をサブフォルダ含めて出力が可能となります。
コマンドプロンプトなどでも同じことができるかもしれませんが、ExcelVBAを使えば出力までやってくれる。。。
フォルダ内のファイル整理やファイル検索。便利になること間違い無しです。(出力結果にハイパーリンクを使えば、各種ファイルへのワンクリックオープンも可能ですね。)
文字列を分離する方法(MID関数など)を応用すれば、ファイル名だけ出力することも可能です。
一度考えてみてはいかがでしょうか?