こんにちはゲストさん。会員登録(無料)して質問・回答してみよう!

解決済みの質問

Excel マクロ ファイル名取得について

Excel マクロ ファイル名取得について

特定のフォルダにあるファイルのファイル名を
Excelに一覧として作成します。

下記マクロで実現できたのですが、フォルダでファイルを
「詳細」で並べて上から順番にB列に反映することは
可能でしょうか。

ご回答お待ちしております。


Sub fileName()
Dim MyF As String
Dim myRow As Long 'ファイル名の取得
myRow = 2
MyF = Dir(ThisWorkbook.Path & "\*")
If MyF <> "" Then
Do Until MyF = ""
Cells(myRow, "B").Value = MyF 'ファイル名
MyF = Dir()
myRow = myRow + 1
Loop
End If
End Sub

投稿日時 - 2010-10-12 19:01:44

QNo.6245439

すぐに回答ほしいです

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

「詳細」で並べて上から順番とは、たとえば更新日順ということでしょうか?
そうであれば、C列に一旦更新日も入れて、C列で降順にソートしてC列を消去したらどうでしょう?

Sub fileName()
  Dim MyF As String
  Dim myRow As Long
  Dim FSO
  Set FSO = CreateObject("Scripting.FileSystemObject")
  myRow = 2
  MyF = Dir(ThisWorkbook.Path & "\*")
  If MyF <> "" Then
    Do Until MyF = ""
      Cells(myRow, "B").Value = MyF 'ファイル名
      Cells(myRow, "C").Value = FSO.GetFile(ThisWorkbook.Path & "\" & MyF).DateLastModified '更新日時
      MyF = Dir()
      myRow = myRow + 1
    Loop
    Range(Range("B2:C2"), Range("B2:C2").End(xlDown)).Sort _
    Key1:=Range("C2"), Order1:=xlDescending, Header:=xlNo, Orientation:=xlTopToBottom
    Range(Range("C2"), Range("C2").End(xlDown)).ClearContents
  End If
End Sub

投稿日時 - 2010-10-13 16:13:39

お礼

ご回答ありがとうございます。C列に更新日時を入れることは思いつきませんでした。助かりました。

投稿日時 - 2010-10-13 22:44:03

このQ&Aは役に立ちましたか?

0人が「このQ&Aが役に立った」と投票しています

回答(2)

ANo.1

ファイル名を全部読み込んだ後で
Excelの機能でソートするんじゃ
だめですか?    (^-^)

投稿日時 - 2010-10-12 22:49:05

お礼

ご回答ありがとうございます。ソートまでマクロで実現できればと思い質問させていただきました。

投稿日時 - 2010-10-13 09:29:58

あなたにオススメの質問