ファイルシステムオブジェクトを使用するには、まずメインのファイルシステムオブジェクトを生成する必要があります。このオブジェクトを生成するには CreateObject 関数を使用します。この際、引数に”Scripting.FileSystemObject“を指定します。
生成方法
ファイルシステムオブジェクトを生成すると、そのメソッドを使用してファイルやフォルダなどのオブジェクトが取得可能になります。これらのオブジェクトも必要に応じて変数を用意し、格納しておくとよいでしょう。
簡単な使用例
以下に簡単な使用例を掲載します。もう少し詳細な使用方法については別ページで後述します。
ファイルとフォルダの情報を取得
以下のサンプルマクロは、カレントフォルダ内にある”test.txt”のファイル情報を取得・表示し、さらに、カレントフォルダ内のファイル数とサブフォルダ数を取得・表示する例です。
Sub sample_fs012_1()
'ファイルシステムオブジェクトへの参照を格納するための変数
Dim fso As Object
'ファイルオブジェクトへの参照を格納するための変数
Dim fileObj As Object
'フォルダオブジェクトへの参照を格納するための変数
Dim folderObj As Object
'ファイルシステムオブジェクトの生成と変数への格納
Set fso = CreateObject("Scripting.FileSystemObject")
'カレントフォルダ内にある"test.txt"のファイルオブジェクトを取得
Set fileObj = fso.GetFile("test.txt")
'"test.txt"の作成日時、最終更新日時を表示
MsgBox "作成日時 :" & fileObj.DateCreated & vbLf & _
"最終更新日時:" & fileObj.DateLastModified
'カレントフォルダのフォルダオブジェクトを取得
Set folderObj = fso.GetFolder(CurDir)
'カレントフォルダ内のファイルとフォルダ数を表示
MsgBox "ファイル数:" & folderObj.Files.Count & vbLf & _
"フォルダ数:" & folderObj.SubFolders.Count
End Sub
Withステートメント使用
上記の例で Withステートメント を使用すると次のように記述できます。できるだけ使用する変数を減らしたい思う方は Withステートメント を有効に利用するとよいでしょう。
Sub sample_fs012_2()
'ファイルシステムオブジェクトへの参照を格納するための変数
Dim fso As Object
ファイルシステムオブジェクトの生成と変数への格納
Set fso = CreateObject("Scripting.FileSystemObject")
'カレントフォルダ内にある"test.txt"のファイルオブジェクトを取得
With fso.GetFile("test.txt")
'"test.txt"の作成日時、最終更新日時を表示
MsgBox "作成日時 :" & .DateCreated & vbLf & _
"最終更新日時:" & .DateLastModified
End With
'カレントフォルダのフォルダオブジェクトを取得
With fso.GetFolder(CurDir)
'カレントフォルダ内のファイルとフォルダ数を表示
MsgBox "ファイル数:" & .Files.Count & vbLf & _
"フォルダ数:" & .SubFolders.Count
End With
End Sub