フォルダ内のファイルを列挙するVBAコード
ExcelのVBAを使うと、特定のタスクを自動化できます。今回は、指定されたフォルダ内のファイル名をExcelのワークシートに列挙するコードを解説します。
1. サブルーチンの定義
まず、サブルーチン(Subroutine)を定義します。サブルーチンは、特定のタスクを実行するための一連のコードです。
Sub 列挙ファイル()
Dim folderPath As String
Dim fileName As String
Dim ws As Worksheet
Dim i As Long
' シート1を選択
Set ws = ThisWorkbook.Sheets("Sheet1")
' フォルダのパスを指定(現在のフォルダを使用)
folderPath = ThisWorkbook.Path & "\"
' フォルダ内のファイルを列挙
fileName = Dir(folderPath & "*.*")
i = 1
Do While fileName <> ""
' ファイル名をSheet1に書き込む
ws.Cells(i, 1).Value = fileName
i = i + 1
fileName = Dir
Loop
End Sub
2. コードの解説
folderPath
:フォルダのパスを格納する文字列型の変数です。現在のブックのフォルダパスを取得しています。fileName
:ファイル名を格納する文字列型の変数です。ws
:Excelのワークシートを操作するためのワークシート型の変数です。ここでは「Sheet1」を選択しています。i
:行番号を格納する長整数型の変数です。
Set ws = ThisWorkbook.Sheets("Sheet1")
:現在のブックの「Sheet1」を操作するためにws
変数に代入しています。folderPath = ThisWorkbook.Path & "\"
:現在のブックのフォルダパスにバックスラッシュを追加して、folderPath
変数に格納しています。fileName = Dir(folderPath & "*.*")
:Dir
関数を使って最初のファイル名を取得しています。*.*
はすべてのファイルを意味します。Do While fileName <> ""
:ファイル名が空でない限り、以下の処理を繰り返します。ws.Cells(i, 1).Value = fileName
:ワークシート「Sheet1」のi行1列目にファイル名を書き込んでいます。i = i + 1
:行番号を1つ増やして次の行に移動します。fileName = Dir
:次のファイル名を取得します。
このコードを実行すると、指定されたフォルダ内のファイル名が「Sheet1」に列挙されます。ExcelのVBAを使って、さまざまなタスクを効率的に実行できることを覚えておいてくださいね!