• ベストアンサー

エクセルBook一覧

よろしくお願いします。 Book1.xlsのシート1のセルA1から下に Book1.xlsと同じ階層にある全てのファイル名を抽出する方法はあるでしょうか? 500位あるのですが。

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

  • ベストアンサー
noname#31387
noname#31387
回答No.2

配列に入れて一度に書き出す方法です。 No.1さんが使用されている変数名FileNameは プロパティで使用されているので別の名前の方が安全だと思います。 Sub Test() Dim myDir As String, Fname As String Dim buf() As Variant, c As Long myDir = ThisWorkbook.Path & "\" Fname = Dir(myDir & "*.*") c = 0 Do While Fname <> ""    If Fname <> ThisWorkbook.Name Then       c = c + 1       ReDim Preserve buf(1 To c)       buf(c) = Fname    End If    Fname = Dir() Loop If c = 0 Then MsgBox "ファイルなし": Exit Sub With ThisWorkbook.Worksheets("Sheet1")    .Range("A:A").ClearContents    .Range("A1").Resize(c, 1) _           .Value = Application.Transpose(buf) End With End Sub 参考までに FileSystemObjectを使用する方法もあります。

noname#31512
質問者

お礼

ありがとうございました

すると、全ての回答が全文表示されます。

その他の回答 (1)

  • ham_kamo
  • ベストアンサー率55% (659/1197)
回答No.1

マクロを使えばできますよ。 シート1のシートタブを右クリックし、「コードの表示」を選択してVBAの画面を出します。その右の画面に以下のマクロをコピーして貼り付けてください。 Sub ファイル一覧作成()  Dim FileName As String  Dim i As Integer  Cells.ClearContents  FileName = Dir(ThisWorkbook.Path & "\*")  Do While FileName <> ""   i = i + 1   Cells(i, 1).Value = FileName   FileName = Dir()  Loop End Sub その画面でF5キーを押すか、Alt+F11でExcelの画面に戻ってAlt+F8からマクロを実行してみてください。A列にファイル名一覧が表示されます。(Book1は新規でなくて、一度保存してから実行してください)

noname#31512
質問者

お礼

ありがとうございました

すると、全ての回答が全文表示されます。

関連するQ&A