11/16/2025

Excel。VBA。フォルダ内のファイル名一覧をつくりたい【File name list】

Excel。VBA。フォルダ内のファイル名一覧をつくりたい

<Excel VBA>

フォルダ内にあるファイル名の一覧を書き出したいのですが、ファイル名をコピーして抽出するとなると大変。


簡単な作業ですが、ファイル数が多いとなると、とても面倒です。


そこで、Excel VBAでプログラムをつくって対応することにしました。


今回は、デスクトップに練習フォルダを用意して、その中にファイルがある前提とします。

作成したプログラムです。


Sub ファイル名一覧取得()

    Dim フォルダパス As String

    Dim ファイル名 As String

    Dim 行番号 As Long


    フォルダパス = Environ("USERPROFILE") & "\Desktop\練習\"

    ファイル名 = Dir(フォルダパス & "*.*")


    行番号 = 1


    Do While ファイル名 <> ""


        Cells(行番号, 1).Value = ファイル名

        行番号 = 行番号 + 1

        ファイル名 = Dir

    Loop

End Sub


では、実行してみましょう。

フォルダ内のファイル名一覧

フォルダ内のファイル名一覧をつくることができました。


プログラムの説明をします。

最初は、変数宣言です。

Dim フォルダパス As String

フォルダの場所を入れる「フォルダパス」という変数を用意します。


Dim ファイル名 As String

ファイル名を入れる「ファイル名」という変数を用意します。


Dim 行番号 As Long

Excelの何行目に書き込むのかという「行番号」という変数を用意します。


フォルダパス = Environ("USERPROFILE") & "\Desktop\練習\"

フォルダの場所を指定します。今回は、ユーザーのデスクトップにある「練習」フォルダとしています。


ファイル名 = Dir(フォルダパス & "*.*")

最初のファイル名を取得します。(*.* はすべてのファイルを対象)


行番号 = 1

Excelの1行目から書き始める

ここから繰り返し処理をします。


Do While ファイル名 <> ""

ファイルが見つかる限り、繰り返し処理をします。

Do While <>””~Loop は、なくなるまで繰り返すという意味です


Cells(行番号, 1).Value = ファイル名

ファイル名をExcelのA列に書き込みます。


行番号 = 行番号 + 1

次の行に移動して書き込む必要がありますので、行番号に+1します


ファイル名 = Dir

次のファイル名を取得します。


Loop

繰り返しのLoopです。


このようなプログラム文だけでも、フォルダ内のファイル名一覧をつくることができます。コピペを繰り返すよりも、楽で時短かなと思います。