FSO Folders コレクションからフォルダを参照
このコードは、FileSystemObject (FSO) を使用して指定されたディレクトリ内のサブフォルダの情報を取得し、出力する方法を示しています。
' FSO Folders コレクションからフォルダを参照
Private Sub FSO_Folders()
' 参照設定「Microsoft Scripting Runtime」必要
With New FileSystemObject
Dim myPath As String
myPath = "C:\TEMP"
Dim myFolders As Folders
' 指定されたパスのサブフォルダのFoldersコレクションを取得
Set myFolders = .GetFolder(myPath).SubFolders
' myFoldersコレクション内の指定されたフォルダ名(“hoge”)の名前を出力
Debug.Print myFolders("hoge").Name
' myFoldersコレクション内のフォルダの数を出力
Debug.Print myFolders.Count
' myFoldersコレクション内の各フォルダに対して繰り返し処理
Dim myFolder As Folder
For Each myFolder In myFolders
' myFoldersコレクション内の各フォルダに対して繰り返し処理
Debug.Print myFolder.Name
Next myFolder
End With
End Sub
コードの詳細な説明
- FileSystemObjectの作成:
With New FileSystemObject
ここではFileSystemObject
の新しいインスタンスを作成しています。これにより、ファイルシステムにアクセスするためのオブジェクトを作成します。 - フォルダのパスを設定:
Dim myPath As String myPath = "C:\TEMP"
変数myPath
に、操作対象となるフォルダのパス(ここでは “C:\TEMP”)を代入します。 - サブフォルダの取得:
Dim myFolders As Folders Set myFolders = .GetFolder(myPath).SubFolders
指定されたパスのフォルダ(”C:\TEMP”)内のサブフォルダのコレクションをmyFolders
に設定します。 - 特定のフォルダ名の出力:
Debug.Print myFolders("hoge").Name
myFolders
コレクション内に “hoge” という名前のフォルダが存在する場合、その名前をデバッグ出力に表示します。 - フォルダの数を出力:
Debug.Print myFolders.Count
myFolders
コレクション内のフォルダの数をデバッグ出力に表示します。 - フォルダ名を繰り返し処理して出力:
Dim myFolder As Folder
For Each myFolder In myFolders
Debug.Print myFolder.Name
Next myFolder
myFolders
コレクション内の各フォルダに対して繰り返し処理を行い、それぞれのフォルダの名前をデバッグ出力に表示します。
このコードを実行すると、指定されたフォルダ (“C:\TEMP”) 内のサブフォルダの情報がデバッグウィンドウに出力されます。具体的には、”hoge” というフォルダが存在すればその名前、フォルダの数、そして各フォルダの名前が出力されます。