ITサポーターTsuchida

VBA Advance3

第3章 ファイルの参照方法

ファイルシステムオブジェクトを使って、ファイルを参照する場合は、以下の4つの手順を行います。

①オブジェクト変数の定義

②ファイルシステムオブジェクトのオブジェクト変数へのセット

③ファイルシステムオブジェクトの使用(ファイルやフォルダの操作)

④オブジェクト変数の解放

実際に、特定のフォルダにある特定の名前のつくファイルを開く場合を例にとって、各手順での記述を紹介します。

①オブジェクト変数の定義

Dim fso As Object
Dim fl As Object
Dim strPath As String
Dim wb As Workbook

②ファイルシステムオブジェクトのオブジェクト変数へのセット

Set fso = CreateObject("Scripting.FileSystemObject")

③ファイルシステムオブジェクトの使用(CドライブのDataフォルダのファイルを開く)

strPath = "C:\Data"
For Each fl In fso.getfolder(strPath).Files
If Instr(fl.Name, "決算") > 0 And Right(fl.Name, 4) = "xlsx" then
Set wb = Workbooks.Open(Filename:=fl.Path)
以下ファイルの処理
End If
Next

④オブジェクト変数の解放

Set wb = Nothing
Set fso = Nothing
Set fl = Nothing

フォルダには複数のファイルが存在するため、1つずつ処理するためにFor Eachステートメントを使います。ファイルシステムオブジェクトとFor Eachステートメントの組み合わせは非常に便利で、いろんな応用が利きます。