見出し画像

ディレクトリからファイル名を取得する方法

 EXCEL VBAでディレクトリからファイル名を取得する方法
 EXCEL VBAでディレクトリからファイル名を取得するには、主に以下の2つの方法があります。

  1. 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
 上記以外にも、さまざまな方法でファイル名を取得することができます。具体的な方法は、ご自身のニーズに合わせて選択してください。

この記事が気に入ったらサポートをしてみませんか?