ディレクトリからファイル名を取得する方法
EXCEL VBAでディレクトリからファイル名を取得する方法
EXCEL VBAでディレクトリからファイル名を取得するには、主に以下の2つの方法があります。
Dir関数を使う
Dir関数は、指定したフォルダー内のファイルとフォルダの名前を取得するために使用されます。
以下のコード例では、C:\MyDir フォルダー内のすべてのファイル名をリスト表示する方法を示します。
VBA
Sub GetFileNames()
Dim folderPath As String
Dim fileName As String
folderPath = "C:\MyDir"
' フォルダ内のファイルをループ処理
fileName = Dir(folderPath)
Do While fileName <> ""
Debug.Print fileName
' 次のファイル名を取得
fileName = Dir
Loop
End Sub
コードは注意してご使用ください。
2. FileSystemObjectを使う
FileSystemObjectは、ファイルシステムオブジェクトを作成するためのクラスです。
このオブジェクトを使用して、ファイルやフォルダに関するさまざまな操作を実行できます。以下のコード例では、C:\MyDir フォルダー内のすべてのファイル名をリスト表示する方法を示します。
VBA
Sub GetFileNamesWithFSO()
Dim fso As Object
Dim folder As Object
Dim file As Object
' FileSystemObjectを作成
Set fso = CreateObject("Scripting.FileSystemObject")
' フォルダオブジェクトを取得
Set folder = fso.GetFolder("C:\MyDir")
' フォルダ内のファイルをループ処理
Set file = folder.Files.First
Do While Not file Is Nothing
Debug.Print file.Name
' 次のファイルを取得
Set file = file.Next
Loop
End Sub
コードは注意してご使用ください。
補足
上記のコード例は、カレントフォルダーを取得する方法を示しています。他のフォルダーを取得するには、folderPath 変数に適切なパスを指定する必要があります。
Dir関数は、ファイルとフォルダの両方の名前を取得します。ファイル名のみを取得するには、InStr 関数を使用して拡張子を削除する必要があります。
FileSystemObjectを使用する場合は、Scripting.FileSystemObject ライブラリへの参照を設定する必要があります。
これを行うには、VBAエディタのメニューから ツール > 参照設定 を選択し、Scripting.FileSystemObject ライブラリを選択して OK をクリックします。
参考情報
VBAでファイル名を取得するには?3+1のパターンで速攻理解! | 侍エンジニアブログ
【Excel VBA】フォルダー内のファイル名を全て取得する方法 - ワークテリア(Workteria)](https://workteria.forward-soft.co.jp/blog/detail/10374)
【Excel】VBAを使わずに、フルパスからファイル名のみ・パスのみを取得する - Qiita
上記以外にも、さまざまな方法でファイル名を取得することができます。具体的な方法は、ご自身のニーズに合わせて選択してください。
この記事が気に入ったらサポートをしてみませんか?