「vba fso フォルダ数カウント」
「filesystemobject フォルダ数」
といった検索キーワードで、時折アクセスがあります。
FileSystemObjectを利用してフォルダーの個数を取得するには、どのようなコードを書けばいいのか探していた方による検索です。
「エクセル マクロ フォルダの個数」
といった検索でのアクセスもあります。
FileSystemObjectでフォルダーの個数を取得するサンプル
以下のSubプロシージャを実行すると、Cドライブtempフォルダーに存在するフォルダーの個数が、メッセージボックスに表示されます。
With CreateObject("Scripting.FileSystemObject")
MsgBox .GetFolder("C:\temp").SubFolders.Count
End With
End Sub
C:\tempフォルダーが存在しない場合には、「実行時エラー '76': パスが見つかりません。」となります。
サンプルマクロで行っている処理について
上記のSubプロシージャで行っている処理は、以下のとおりです。
まず、VBAのCreateObject関数を使って、
Scripting.FileSystemObjectへの参照を取得します。
With CreateObject("Scripting.FileSystemObject")
つづく、
MsgBox .GetFolder("C:\temp").SubFolders.Count
の部分は、取得したFileSystemObjectを利用するコードです。FileSystemObjectのメソッドやプロパティが何を返すのか、しっかりと意識しながら読解しましょう。
取得したFileSytemObjectオブジェクトに用意されている、GetFolderメソッドを使って、
C:\tempフォルダーを表すFolderオブジェクトを取得しています。
MsgBox .GetFolder("C:\temp").SubFolders.Count
次に、Folderオブジェクトに用意されているSubFoldersプロパティで、
C:\tempフォルダー下の各サブフォルダーを要素として含む、Foldersコレクションを取得します。
MsgBox .GetFolder("C:\temp").SubFolders.Count
最後に、Foldersコレクションに用意されているCountプロパティで、
C:\tempフォルダー下のサブフォルダーの個数を取得しています。
MsgBox .GetFolder("C:\temp").SubFolders.Count
オブジェクトブラウザーでFileSystemObjectを確認しましょう
VBEで参照設定を行えば、オブジェクトブラウザーを使ってFileSystemObjectに含まれる各オブジェクトが、どのようなプロパティ・メソッドを持っているのかを確認できるようになります。
FileSystemObjectを使ったコードを自力で書けるようになりたい、上記のコードをしっかり理解したいという方は、自分の手を動かしてオブジェクトブラウザーを調べましょう。
最終更新日時:2021-04-24 17:18
Home » FSO・FileSystemObjectの使い方 » FileSystemObjectでフォルダーの個数を取得する-Folders.Count