Home » FSO・FileSystemObjectの使い方 » FileSystemObjectでフォルダーの個数を取得する-Folders.Count

FileSystemObjectでフォルダーの個数を取得する-Folders.Count

「vba fso フォルダ数カウント」
「filesystemobject フォルダ数」
といった検索キーワードで、時折アクセスがあります。

FileSystemObjectを利用してフォルダーの個数を取得するには、どのようなコードを書けばいいのか探していた方による検索です。

「エクセル マクロ フォルダの個数」
といった検索でのアクセスもあります。

[スポンサードリンク]

FileSystemObjectでフォルダーの個数を取得するサンプル

以下のSubプロシージャを実行すると、Cドライブtempフォルダーに存在するフォルダーの個数が、メッセージボックスに表示されます。

Sub Folderの個数を取得する()
 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

「FSO・FileSystemObjectの使い方」の記事一覧

検索


Copyright © インストラクターのネタ帳 All Rights Reserved.

.