
ExcelVBA 指定したフォルダ内のファイル名やフルパスを取得し、リストアップや特定の処理を行うために利用します。使い方や注意点など、サンプルコードをもとに具体的に解説します。
自分の実力を客観的にチェックしたい…。そんな方のために、自分に合ったスタート地点がわかる無料のExcelVBAベーシック選択問題集をご用意しました。
Excel VBAでフォルダ内のファイル名・フルパスを取得する用途とは?
以下のようなシーンで利用されます。
1.フォルダ内のファイル一覧をExcelシートに出力。
2.特定の拡張子のファイルを探して処理する。
3.ファイル名を取得して他のシステムやレポートで使用する。
Dir関数を使ってファイル名を取得するポイント
Dir 関数を使って、フォルダ内のファイル名を1つずつ取得できます。
1.ワイルドカードの活用
* や ? を使用して特定のパターンのファイルを取得できます(例: *.xlsx)
2.フォルダの指定
フォルダパスが正しく設定されていないとエラーになります。
3.ファイルとフォルダの区別
Dir 関数はファイルだけでなくフォルダも返すため、判別が必要です。
【サンプルコード】フォルダ内のファイルを一括取得するVBAマクロ
📌 「これ、自動化できたらラクなのに…」と思ったこと、ありませんか?
実はその作業、Excelマクロで簡単に自動化できるかもしれません。
「でもマクロって難しそう…」という方のために、完全初心者向けの入門記事をご用意しました!
👇実務で“そのまま使える”テンプレ付きで、コピペするだけ!
初心者向けエクセルマクロの作り方を解説|コピペOK実務テンプレ付き
- Option Explicit
- Sub GetFileNames()
- Dim folderPath As String
- Dim fileName As String
- Dim row As Long
- ' フォルダパスを指定
- folderPath = "C:\Users\User\Desktop\sourceFile"
- ' 最後がバックスラッシュで終わっていない場合は追加
- If Right(folderPath, 1) <> "\" Then
- folderPath = folderPath & "\"
- End If
- ' 初期設定
- fileName = Dir(folderPath) ' 最初のファイル名を取得
- row = 1 ' 出力先の行番号
- ' シートに結果を出力
- Do While fileName <> ""
- Cells(row, 1).Value = fileName ' ファイル名
- Cells(row, 2).Value = folderPath & fileName ' フルパス
- row = row + 1
- fileName = Dir ' 次のファイル名を取得
- Loop
- MsgBox "ファイル名を取得しました!", vbInformation
- End Sub
1. Dir 関数を使って、フォルダ内のファイル名を1つずつ取得します。
2. 取得したファイル名をセルに出力します(列Aにファイル名、列Bにフルパス)
3. 次のファイルを取得するために Dir を再度呼び出します。
特定の拡張子(例: .xlsx)のファイルだけを取得する
- Option Explicit
- Sub GetSpecificFiles()
- Dim folderPath As String
- Dim fileName As String
- Dim row As Long
- ' フォルダパスを指定
- folderPath = "C:\Users\User\Desktop\sourceFile"
- ' 初期設定
- fileName = Dir(folderPath & "*.xlsx") ' .xlsxファイルのみ取得
- row = 1 ' 出力先の行番号
- ' シートに結果を出力
- Do While fileName <> ""
- Cells(row, 1).Value = fileName ' ファイル名
- row = row + 1
- fileName = Dir ' 次のファイル名を取得
- Loop
- MsgBox "Excelファイルのみを取得しました!", vbInformation
- End Sub
フォルダが存在しない場合にエラーを通知するコード
- If Dir(folderPath, vbDirectory) = "" Then
- MsgBox "指定したフォルダが存在しません: " & folderPath, vbExclamation
- Exit Sub
- End If
ネットワークドライブを使用する場合、アクセス権や接続状況に注意が必要です。空のフォルダの場合、Dir は空文字列 ("") を返すためループは実行されません。フォルダが存在しない場合のエラー処理を追加するとより堅牢になります。
操作方法:1.●●●をクリック(スマホはタップ)で答え表示。2.答えをクリック(スマホはタップ)で●●●表示。1⇔2を繰り返すことで、記憶を定着できます。
1. ●●● 関数を使って、フォルダ内のファイル名を1つずつ取得します。
2. 取得したファイル名をセルに出力します(列Aにファイル名、列Bにフルパス)
3. 次のファイルを取得するために ●●● を再度呼び出します。
「Excel VBAで自動化するコードのベースが習得できる解説書」 Excel VBAエキスパートベーシックとスタンダード、どちらを選べばいいか判断が難しい…。そんな方のために、自分に合ったスタート地点がわかる無料のExcelVBAベーシック選択問題集を用意しました。
