FSO Files コレクションからファイルを参照
このコードは、FileSystemObject (FSO) を使用して特定のフォルダ内のファイルを参照し、その情報を表示する方法を示しています。
' FSO Files コレクションからファイルを参照
Private Sub FSO_Files()
' 参照設定「Microsoft Scripting Runtime」必要
With New FileSystemObject
' ファイルを参照するパスを指定します
Dim myPath As String
myPath = "C:\TEMP"
' Files コレクションを作成して、指定パスのファイルを取得します
Dim myFiles As Files
Set myFiles = .GetFolder(myPath).Files
' 特定のファイルを参照してファイル名を表示します
Debug.Print myFiles.Item("hoge.txt").Name ' hoge.txt
Debug.Print myFiles("fuga.txt").Name ' fuga.txt
' ファイルの総数を表示します
Debug.Print myFiles.Count
' ファイルを一つずつ参照してファイル名を表示します
Dim myfile As File
For Each myfile In myFiles
Debug.Print myfile.Name
Next myfile
End With
End Sub
コードの概要
このサブプロシージャ FSO_Files
は、FileSystemObject
を使って特定のフォルダ内のファイルを取得し、そのファイルの情報を表示します。
コードの詳細
- FileSystemObjectの作成:
With New FileSystemObject
ここではFileSystemObject
のインスタンスを作成しています。このオブジェクトを使ってファイルシステムにアクセスします。' 以下は、参照設定有無にかかわらず使用可 ' With CreateObject("Scripting.FileSystemObject")
参照設定がなくても動作するコードをコメントアウトしています。 - ファイルを参照するパスの指定:
Dim myPath As String myPath = "C:\TEMP"
ファイルを参照するパスをmyPath
という変数に設定しています。 - Files コレクションの作成とファイルの取得:
Dim myFiles As Files Set myFiles = .GetFolder(myPath).Files
指定されたパス (myPath
) のフォルダ内のファイルを取得し、そのファイルのコレクションをmyFiles
に設定します。 - 特定のファイルを参照してファイル名を表示:
Debug.Print myFiles.Item("hoge.txt").Name ' hoge.txt
Debug.Print myFiles("fuga.txt").Name ' fuga.txt
myFiles
コレクション内の特定のファイル(hoge.txt
とfuga.txt
)の名前を表示します。 - ファイルの総数を表示:
Debug.Print myFiles.Count myFiles
コレクション内のファイルの総数を表示します。 - ファイルを一つずつ参照してファイル名を表示:
Dim myfile As File
For Each myfile In myFiles
Debug.Print myfile.Name
Next myfile
myFiles
コレクション内の各ファイルを一つずつ参照し、その名前を表示します。
コード全体の動作まとめ
FileSystemObject
を使用して指定されたパス(C:\TEMP
)内のファイルを取得します。- 特定のファイル(
hoge.txt
とfuga.txt
)の名前を表示します。 - フォルダ内のファイルの総数を表示します。
- フォルダ内のすべてのファイルの名前を一つずつ表示します。
このコードを実行することで、指定されたフォルダ内のファイルに関する情報を簡単に取得して表示できます。これにより、ファイル管理が容易になります。