Home » エクセルマクロ・Excel VBAの使い方 » VBA関数 » ファイル名と更新日時の一覧を作成するExcelマクロ-FileDateTime関数

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

対象:Excel2003, Excel2007, Excel2010

「エクセル2003 vba フォルダのファイル名 更新日取得」
という検索が、このサイト・インストラクターのネタ帳で行われていました。

VBA(Visual Basic for Applications)を使って、指定したフォルダの、ファイル名と更新日時の一覧を作成する方法を探している方による検索でしょうか。

このサイトでは、FileSystemObjectを使わない、Dir関数を使ったファイル名一覧を作成するマクロをご紹介しています。

[スポンサードリンク]

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

このファイル名一覧作成マクロを、少しだけ修正すれば、指定したフォルダのファイル名と更新日時を一覧を作成するマクロができます。

Sub フォルダを指定してファイル名と最終更新日時の一覧を作成する()
 Dim fld As FileDialog
 Dim fol_path As String ' フォルダーのフルパス
 Dim f_name As String ' ファイル名
 Dim i As Long

 Set fld = Application.FileDialog(msoFileDialogFolderPicker)
 If fld.Show = 0 Then Exit Sub 'キャンセル時

 fol_path = fld.SelectedItems(1) 'フォルダのフルパスを変数に格納
 f_name = Dir(fol_path & "\*") '指定されたフォルダの一つ目のファイル名を取得
 If f_name = "" Then MsgBox "ファイルが存在しません。": Exit Sub

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

 ChDir fol_path & "\" 'カレントフォルダの変更
 i = 5
 Do Until f_name = ""
  Cells(i, "A").Value = f_name
  Cells(i, "B").Value = FileDateTime(f_name)
  i = i + 1
  f_name = Dir '次のファイル名を取得
 Loop

 MsgBox Sheets(1).Name & "に一覧を作成しました。"
End Sub

上記のマクロを実行すると、フォルダを指定するダイアログが表示され、指定されたフォルダのファイル名と最終更新日時の一覧が、先頭に挿入されたワークシートに作成されます。

サンプルマクロの解説

基本的な考え方は、既にご紹介しているDir関数を使ってファイル名一覧を作成するマクロと同じです。そこに最終更新日時を取得する処理が追加されているだけです。

更新日時を取得しているのは、Do Until ~ Loop文の中の
  Cells(i, "B").Value = FileDateTime(f_name)
の部分です。

VBAでは、FileDateTime関数でファイルの最終更新日時を取得できます。

FileDateTime関数の引数指定をシンプルにするために、Do Until ~ Loop文に入る直前に
 ChDir fol_path & "\"
と、カレントフォルダの変更を行っています。

[スポンサードリンク]

Home » エクセルマクロ・Excel VBAの使い方 » VBA関数 » ファイル名と更新日時の一覧を作成するExcelマクロ-FileDateTime関数

「VBA関数」の記事一覧

検索


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

.