Home » FileSystemObjectの使い方 » FileSystemObjectを使ってファイル数を取得するマクロ

FileSystemObjectを使ってファイル数を取得するマクロ

「エクセル vba scripting.filesystemobject ファイル数」
という検索で、このサイト・インストラクターのネタ帳へのアクセスがありました。

Excel VBA(Visual Basic for Applications)で、FileSyestemObjectオブジェクトを使って、ファイルの数を取得するには、どのようなコードを書けばいいのかを探している方による検索です。

[スポンサードリンク]

指定したフォルダーのファイル数を取得するサンプルマクロ

以下のようなマクロで、指定したフォルダーのファイル数を取得できます。


Sub ファイル数を取得する()

 Const FD_PATH = "C:\tmp"
 Dim fso As Object ' Scripting.FileSystemObject

 Set fso = CreateObject("Scripting.FileSystemObject")
 MsgBox fso.GetFolder(FD_PATH).Files.Count

End Sub

FileSystemObjectオブジェクトのGetFolderメソッドで、Folderオブジェクトを取得して、

FileSystemObjectを使ってファイル数を取得するExcelマクロ

FolderオブジェクトのFilesプロパティでFilesコレクションオブジェクトを取得して、

FileSystemObjectを使ってファイル数を取得するExcelマクロ

FilesコレクションオブジェクトのCountプロパティで、ファイル数を取得しています。

FileSystemObjectを使ってファイル数を取得するExcelマクロ

VBAのDir関数を使う場合、ループ処理をする必要がありますが、FileSystemObjectオブジェクトを使えば、上記のように簡単にファイル数を取得できます。

指定したフォルダーの指定した種類のファイル数を取得するサンプルマクロ

特定の種類のファイル数を取得する場合は、以下のようにループ処理が必要になります。


Sub ファイル数を取得する_拡張子指定()

 Const FD_PATH = "C:\tmp"
 Const EXTN = "PDF"

 Dim fso As Object ' Scripting.FileSystemObject
 Dim fl As Object ' Scripting.File
 Dim n As Long ' ファイルの数

 Set fso = CreateObject("Scripting.FileSystemObject")

 n = 0
 For Each fl In fso.GetFolder(FD_PATH).Files
  If UCase(fso.GetExtensionName(fl.Path)) = EXTN Then
   n = n + 1
  End If
 Next
 
 MsgBox n

End Sub

指定したフォルダー内の全Fileオブジェクトに対してFor Each~Nextループを回して、
 For Each fl In fso.GetFolder(FD_PATH).Files

指定した拡張子と同じだったときに変数をインクリメントしています。
  If UCase(fso.GetExtensionName(fl.Path)) = EXTN Then
   n = n + 1

FileSystemObjectオブジェクトのGetExtensionNameメソッドの引数に、

FileSystemObjectを使ってファイル数を取得するExcelマクロ

FileオブジェクトのPathプロパティで取得したファイルのパスを指定して、

FileSystemObjectを使ってファイル数を取得するExcelマクロ

ファイルの拡張子を取得しているのが「fso.GetExtensionName(fl.Path)」というオブジェクト式です。

[スポンサードリンク]

Home » FileSystemObjectの使い方 » FileSystemObjectを使ってファイル数を取得するマクロ

TrackBack:0

TrackBack URL
[スポンサードリンク]

Home » FileSystemObjectの使い方 » FileSystemObjectを使ってファイル数を取得するマクロ

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

検索


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

.