【VBA】特定のフォルダ内の全ファイルをエラー処理付きで取得する方法
日々の業務の中で、特定のフォルダから大量のファイルを手動で開き、情報を抽出するのは非常に時間がかかります。この記事では、Excel VBAを使って効率的にファイルを取得し、作業時間を大幅に短縮する方法を紹介します。
サンプルコード
VBA
Option Explicit
Sub GetFilesInFolder()
Dim fso As Object, folder As Object, file As Object
Dim targetFolder As String
Dim files() As Variant
Dim i As Long
' 対象のフォルダパスを指定
targetFolder = "C:\Users\UserName\Documents"
Set fso = CreateObject("Scripting.FileSystemObject")
On Error GoTo ErrorHandler
If Not fso.FolderExists(targetFolder) Then
MsgBox "指定されたフォルダが存在しません。", vbExclamation
Exit Sub
End If
ReDim files(1 To 1)
i = 1
For Each file In fso.GetFolder(targetFolder).Files
' ファイル名を配列に格納
files(i) = file.Name
i = i + 1
ReDim Preserve files(1 To i)
Next file
MsgBox "フォルダ内のファイル一覧:", vbInformation, targetFolder & vbCrLf & Join(files, vbCrLf)
Exit Sub
ErrorHandler:
MsgBox Err.Description, vbCritical
End Subよくある質問
Q 元に戻せますか?
A.
VBAの実行結果は「元に戻す」が効きません。必ずバックアップを取ってから実行してください。
Q エラーが出たら?
A.
指定したフォルダパスが正しいか、またはその他のシステム環境問題がないか確認してください。