エクセルマクロを使ってファイルの更新日時(yyyy/mm/dd hh:mm:ss)を取得する

MS-DOSコマンドでファイル一覧を取得するとき
 dir /S /A-D
とかで一覧の取得はよくやる。

ただ、Dirだと秒まで出力してくれない。
あんまり必要になる機会がなかったけど、
最近そこまで確認してくださいというケースが何回か発生した。

Scriptで組んでバッチから実行して・・・っていうツールをもらったけど
最終的に出力した結果をExcelにまとめるとかしていたし、
マクロ実行してる例もたくさんあるから、自分で試してみようと思って勉強中。

この内容できれいに取得できました!
*********************

Sub ファイル情報一覧作成()
   Dim fid As FileDialog
   Dim fPath As String
   Dim fName As String
   Dim i As Long

   Set fid = Application.FileDialog(msoFileDialogFolderPicker)
  'キャンセルの時は終了
   If fid.Show = 0 Then
   Exit Sub
   End If
 
   'フォルダのフルパスを設定
  fPath = fid.SelectedItems(1)

   'フォルダの1つ目のファイル名を取得
   fName = Dir(fPath & "\*")
   If fName = "" Then
   MsgBox "ファイルが存在しません"
   Exit Sub
   End If

   '出力先シート用意
   Worksheets.Add before:= sheets(1)

   Range("A1").Value = fPath
   Range("A3").Value = "ファイル名"
   Range("B3").Value = "最終更新日時"

   i = 4
  'カレントフォルダの変更
   ChDir fPath & "\"
   Do Until fName = ""
   Cells(i, "A").Value = fName
   Cells(i, "B").Value = FileDateTime(fName)
   Cells(i, "C").Value = Year(FileDateTime(fName)) & "年"
   Cells(i, "D").Value = Month(FileDateTime(fName)) & "月"
   Cells(i, "E").Value = Day(FileDateTime(fName)) & "日"
   Cells(i, "F").Value = Hour(FileDateTime(fName)) & "時"
   Cells(i, "G").Value = Minute(FileDateTime(fName)) & "分"
   Cells(i, "H").Value = Second(FileDateTime(fName)) & "秒"
   i = i + 1
   '次のファイル名を取得
   fName = Dir
   Loop

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

  End Sub

******************************************:

Set fid = Application.FileDialog(msoFileDialogFolderPicker)
でファイル選択のダイアログを表示

Dirを利用してファイル名を取得
Dirの使い方がいまいちわかっていなかったけど、ファイルリストを1行ずつ返してくれるっぽい。
引数の設定で隠しファイルとか読み取り専用とかに対応できるらしいから、
また必要になったら調べてみよう。

そしてファイル情報を取得するのが FileDateTime([ファイル名])
出力形式の編集とかしないと、Excelさんのありがた迷惑機能で
セル内の表示が分までにされるから、自分でフォーマット決めてあげる必要がありそう。



こちらのサイトさんを参考にしました。

インストラクターのネタ帳
「ファイル名と更新日時の一覧を作成するExcelマクロ-FileDateTime関数」
http://www.relief.jp/itnote/archives/018022.php

ブログ気持玉

クリックして気持ちを伝えよう!

ログインしてクリックすれば、自分のブログへのリンクが付きます。

→ログインへ

なるほど(納得、参考になった、ヘー)
驚いた
面白い
ナイス
ガッツ(がんばれ!)
かわいい

気持玉数 : 0

この記事へのコメント

この記事へのトラックバック