
FileオブジェクトのFilesコレクションと、FolderオブジェクトのFoldersコレクションについてです。
Menu
FilesコレクションとFoldersコレクション
概要
Filesコレクション:フォルダー内のすべてのFileオブジェクトです。
Foldersコレクション:Folderオブジェクトに含まれるすべてのFolderオブジェクトのコレクションです。
VBAサンプル(Filesコレクション)
指定したフォルダのファイル名を全取得する例。
・指定したFilesコレクションのFileオブジェクトのNameプロパティをForEachで繰り返し取得。
【サンプル】
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 | Sub Filesコレクション() 'FileSystemObjectをセット Dim fso As Object Set fso = CreateObject("Scripting.FileSystemObject") 'FileSystemObjectのGetFolderメソッドでFolderオブジェクトをセット Dim fol As Folder Set fol = fso.GetFolder("D:\sample") 'FolderオブジェクトのFilesコレクションをセット Dim fc Set fc = fol.Files 'FolderオブジェクトのFilesプロパティはFilesコレクションを返す 'FilesコレクションをForEachで繰り返し処理 Dim f As File For Each f In fc 'FileオブジェクトのNameプロパティを取得 Debug.Print f.Name Next End Sub |
【結果】
指定したフォルダーのファイル名のみ取得。
VBAサンプル(Foldersコレクション)
指定したフォルダーのサブフォルダー名を全取得する例
・指定したFoldersコレクションのFolderオブジェクトのNameプロパティをForEachで繰り返し取得。
【サンプル】
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 | Sub Foldersコレクション() 'FileSystemObjectをセット Dim fso As Object Set fso = CreateObject("Scripting.FileSystemObject") 'FileSystemObjectのGetFolderメソッドでFolderオブジェクトをセット Dim fol As Folder Set fol = fso.GetFolder("D:\sample") 'FolderオブジェクトのFoldersコレクションをセット Dim fc As Folders Set fc = fol.SubFolders '← Foldersコレクションを返す 'FoldersコレクションをForEachで繰り返し処理 For Each fol In fc 'FolderオブジェクトのNameプロパティを取得 Debug.Print fol.Name Next End Sub |
【結果】
指定したフォルダーのサブフォルダー名のみ取得。