- ベストアンサー
特定のフォルダ名を調べるマクロ
"C:\GENZAISYUUKEI\"の下に幾つかの子フォルダが有ります。 この子フォルダのなかで一番最近にアクセスされたフォルダを調べ、名称を変数「fname」に返すにはどのような方法を取ればいいでしょうか。 子フォルダの各名称、総個数はその都度変化しています。 中にはてテキストファイルが入っています。 FSOのDateLastAccessedかと思うのですが、よく分かりません。
- みんなの回答 (1)
- 専門家の回答
質問者が選んだベストアンサー
こんにちは。 特に、FileStemObject を使う替わりに、VBAコマンドのFileDateTime で、取れるはずです。 Sub FolderDateCompare() Dim myPath As String Dim newFolder As String Dim myDirs() As Variant Dim i As Long, j As Long Dim buf As String Dim TopDate As Date myPath = "C:\GENZAISYUUKEI\" 'On Error Resume Next newFolder = Dir(myPath & "\*", vbDirectory) Do While newFolder <> "" If GetAttr(myPath & "\" & newFolder) And vbDirectory And _ Not (newFolder Like ".*") Then ReDim Preserve myDirs(1, i) myDirs(0, i) = newFolder myDirs(1, i) = FileDateTime(myPath & "\" & newFolder) i = i + 1 End If newFolder = Dir() Loop TopDate = 0 For j = LBound(myDirs, 2) To UBound(myDirs, 2) If myDirs(1, j) > TopDate Then TopDate = myDirs(1, j) buf = myDirs(0, j) End If Next j 'On Error GoTo 0 MsgBox "FileName: " & buf & vbCrLf & _ "Date: " & Format$(TopDate, "yy/mm/dd hh:MM:ss") End Sub
お礼
Wendyさん、こんばんは。いつもお世話になってます。 いろいろ考えれば方法は有るのに、直接的なキーワードや関数に頼ってたみたいです。 今回も汎用的なマクロを作って頂きすみません。 FileDateTimeで日時を出せました。 ただDateLastAccessedで出る日時の意味も正確に分からないのですが、私の調べたかったのは一番最近アクセスされたフォルダがどれかでした。 FileDateTimeで調べるとそのフォルダの更新日時(実質、作成された日時)が返ってくるみたいです。 でも中のファイル更新をFileDateTimeで調べていく事で結果的に最終アクセスのフォルダを特定できました。 ありがとうございました。