Home » FSO・FileSystemObjectの使い方 » ファイル名と更新日時の一覧を作成するExcelマクロ-File.DateLastModified

ファイル名と更新日時の一覧を作成するExcelマクロ-File.DateLastModified

対象:Excel2007, Excel2010, Excel2013

ファイル名と更新日時の一覧を作成するExcelマクロ

VBA(Visual Basic for Applications)標準のDir関数とFileDateTime関数を使って、指定したフォルダに存在するファイルの一覧と最終更新日時の一覧を作成するExcelマクロをご紹介しています。

[スポンサードリンク]

FileSystemObjectを使っても同じようなマクロを作ることができます。

ファイル名と更新日時の一覧を作成するサンプルマクロ

FileSystemObjectを利用する場合、以下のようなマクロになります。

Sub ファイル名と最終更新日時の一覧を作成する_FSO()

 Dim dlg   As FileDialog
 Dim fd_path As String
 Dim fso   As Object ' Scripting.FileSystemObject
 Dim fl   As Object ' Scripting.File
 Dim i    As Long

 Set dlg = Application.FileDialog(msoFileDialogFolderPicker)
 If dlg.Show = False Then Exit Sub
 fd_path = dlg.SelectedItems(1)

 Set fso = CreateObject("Scripting.FileSystemObject")

 If fso.GetFolder(fd_path).Files.Count < 1 Then
  MsgBox fd_path & " にはファイルが存在しません。"
  Set fso = Nothing
  Exit Sub
 End If

 Worksheets.Add Before:=Sheets(1)
 Range("A1").Value = fd_path
 Range("A2").Value = "のファイル一覧"
 Range("A4").Value = "ファイル名"
 Range("B4").Value = "最終更新日時"

 i = 5
 For Each fl In fso.GetFolder(fd_path).Files
   Cells(i, "A").Value = fl.Name
   Cells(i, "B").Value = fl.DateLastModified
   i = i + 1
 Next fl

 Set fso = Nothing

 Columns("A:B").AutoFit
 MsgBox Sheets(1).Name & "に一覧を作成しました。"

End Sub

上記のマクロを実行すると、フォルダを指定するダイアログボックスが表示され、指定されたフォルダ内のファイル名がA5セルから下に、ファイルの最終更新日時がB5セルから下に表示されます。

サンプルマクロの解説

上記のマクロの作りは先日ご紹介した、FileSystemObjectを使ってファイル名一覧を作成するExcelマクロと同じです。

追加されている主な処理は、For Each ~ Next文の中の、
   Cells(i, "B").Value = fl.DateLastModified
です。

FileSystemObjectのFileオブジェクトのDateLastModifiedプロパティで、ファイルの最終更新日時を取得できるので、

ファイル名と更新日時の一覧を作成するExcelマクロ

取得した更新日時をB列に書き出しています。

[スポンサードリンク]

Home » FSO・FileSystemObjectの使い方 » ファイル名と更新日時の一覧を作成するExcelマクロ-File.DateLastModified

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

検索


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

.