• ベストアンサー

特定のフォルダ名を調べるマクロ

"C:\GENZAISYUUKEI\"の下に幾つかの子フォルダが有ります。 この子フォルダのなかで一番最近にアクセスされたフォルダを調べ、名称を変数「fname」に返すにはどのような方法を取ればいいでしょうか。 子フォルダの各名称、総個数はその都度変化しています。 中にはてテキストファイルが入っています。 FSOのDateLastAccessedかと思うのですが、よく分かりません。

質問者が選んだベストアンサー

  • ベストアンサー
  • Wendy02
  • ベストアンサー率57% (3570/6232)
回答No.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

popuran121
質問者

お礼

Wendyさん、こんばんは。いつもお世話になってます。 いろいろ考えれば方法は有るのに、直接的なキーワードや関数に頼ってたみたいです。 今回も汎用的なマクロを作って頂きすみません。 FileDateTimeで日時を出せました。 ただDateLastAccessedで出る日時の意味も正確に分からないのですが、私の調べたかったのは一番最近アクセスされたフォルダがどれかでした。 FileDateTimeで調べるとそのフォルダの更新日時(実質、作成された日時)が返ってくるみたいです。 でも中のファイル更新をFileDateTimeで調べていく事で結果的に最終アクセスのフォルダを特定できました。 ありがとうございました。

関連するQ&A

専門家に質問してみよう