• ベストアンサー

エクセルBook一覧

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

noname#31512
noname#31512

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

  • ベストアンサー
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

  • bookからbookへの数式のコピーについて教えてください

    bookからbookへの数式のコピーについて ??BookのSheet1のセルにSheet2を参照にした数式が入っています =2+Sheet2!$A8 これを!!BookのSheet1のセルにコピーすると =2+[Book1.xls]Sheet2!$A8 こうなりました コピーしたセルは11,475セルあります [Book1.xls]をすべて消したいのですが、簡単な方法はありますか?

  • エクセルのブック内の検索一覧

    エクセル2003VBAについて教えてください。 複数のブックがあり、ブックの中にはいくつかの同じ内容のシートがあります。 シートの内容は、 A1セルには、○か×が入ります。 A2セルには、このブック名とシート名が入っています。 A3セルにはいろいろな文字列が入っています。 A1が○のブック内のシートを探して、別のブックへ |A2セルの内容|A3セルの内容| というリストを作成したいのですが、どのように組めばよいでしょうか。

  • 複数のエクセルブックを一覧にすることはできますか?

    200個くらいの同一形式のエクセルを一覧にしたいのですが、 アクセスがない為、エクセルでなんとかできないかと、悩んでおります。 データは1つのフォルダの中に、 1.xls 2.xls ・ ・ ・ 200.xls と200個あり、それぞれA1:N20の範囲の中のセル内容を、 __|_A列_|_B列_|_C列_|・・・|_?列 _| 1行 |_1.xls_|_A1 _|_B1 _|・・・|_N20 _| 2行 |_2.xls_|_A1 _|_B1 _|・・・|_N20 _| 3行 |_3.xls_|_A1 _|_B1 _|・・・|_N20 _| 上記のように、 A列にファイル名を入れて、B列以降に1つのブックの内容を入れたいです。 (A列へのファイル名は、なくても最悪OKなのですが・・・。) 説明が足りないかもしれませんが、どなたか教えてください。 よろしくお願い致します。

  • 複数のエクセルブックから特定シートの特定セル抽出

    同一フォルダ内にある複数のExcelブックから特定シートの特定セル値を抽出して一覧表にまとめるExcel マクロ(VBA)を教えてください。 よく似ている質問、回答を読んだのですが、私のレベルではとても応用できず質問させていただきます。 【前提】 ・実行する端末のOSはWindows XP(SP3)、Excelは2003 ・対象フォルダはネットワーク接続フォルダ「\データ解析\データ」  この中に、複数のExcelブックがあります。 ・抽出したい対象は、各ブック内のシート(シート名はファイル名と同じ)の「BO6からBW16までの□の範囲」で統一されています。 【抽出一覧作成イメージ】 ・「集計.xls」ブックの「Sheet1」の2行目から抽出した結果を一覧表示する。 ・表示はA列に抽出元ブック名(=ファイル名)、B列に抽出元BO6セルの値。以降,C列・D列と 順に値を入れていきたい。 ・BO6~BW16までのセル値を「集計.xls」ブックの「Sheet1」に貼り付ける際には「値で貼り付ける」が望ましい。 というようなイメージです。 とても勝手なお願いではありますが、宜しくお願いいたします。

  • ブックを開かずに、フォルダ内にある複数ブックの、特定セルの値を抽出した

    ブックを開かずに、フォルダ内にある複数ブックの、特定セルの値を抽出したいのですが、やり方をご存じの方がいらっしゃったら教えてください。 フォルダ内には150個ほどエクセルファイルがあり、中身のシート名・フォーマットは同じなのですが、すべてファイル名が違います。 ファイルを開くことなく、これらのファイルの特定のシートの特定のセルにある値を、全て1枚の表にまとめることは可能でしょうか? フォルダ名 →"AGENDA_RIREKI" 参照したいファイル名 →ファイルによって異なる "#1111 AAA.xls"など 参照したいシート名→ "AGENDA" 参照したいセル→ "A7" と "E20~E70(E列のみ) データをまとめたいファイル名→ "AGENDA_matome.xls" データをまとめる時の形↓ (A列)          (B列)            (C列)        (D列) ファイル1のA7の値 ファイル1のE20の値  ファイル2のA7の値  ファイル2のE20の値                     E21の値                    E21の値                     ・                     ・                     ・     VBAは初心者です。。できればコードをそのまま拝借したいです。 お知恵を貸してください。よろしくお願いします。

  • 破損したブックの情報を修復する方法。

    エクセルで破損したブックの情報を修復する方法として 新しいブックのセルに  =[読めないファイル名]シート名!セル名  例) =[aaa.xls]sheat1!a1 で直接データを読みとることができるかもしれません。 とありましたが、この詳しいやり方を教えて下さい。

  • エクセルマクロ コピー元と貼り付け先を指定してコピー&ペーストを実行するマクロ

    単刀直入にやりたいことを述べます。 Cドライブと仮定します。3つのBOOKがあります。 それぞれ ----- BOOK1.xls「○○Sheet」・・・(実行するファイル)   A 1 BOOK2.xls「△△Sheet」・・・(コピーするファイル名の指定です) 2 A2:E2・・・(コピーするセル範囲の指定) 3 BOOK3.xls「□□Sheet」・・・(貼り付け先のファイル名の指定です) 4 A5・・・(貼り付け先のセルの指定) ----- BOOK2.xls「△△Sheet」・・・(コピー元ファイル)   ABCDE 1 あいうえお 2 かきくけこ 3 ・・・・・ ----- BOOK3.xls「□□Sheet」・・・(貼り付け先のファイル)   ABCDE 1 ・・・・・ 2 かきくけこ・・・(貼り付け) 3 ・・・・・ ----- >やりたいこと BOOK1.xls「○○Sheet」のA1のセルの値とA2セルの値を参照し、 その該当BOOKのセル範囲(BOOK2.xls「△△Sheet」のA2:E2)をコピーして、 BOOK1.xls「○○Sheet」のA3のセルの値と、A4セルの値を参照し、 その該当BOOKのセル範囲(BOOK3.xls「□□Sheet」のA5)へペーストする。 別のブックの指定したセルの値を別のブックの指定したセルへ貼り付けるだけなんですが、 以前関数を使って似たような事をしようとしたのですが、うまくいかなかったので、マクロならできるのでしょうか。 よろしくお願いします。(ちなみにエクセル2000又は2003です)

  • Excelでセル内の文字をファイル名にする方法と、下のSheet1タブを2列にする方法は?

    Excel2003です。OSはWinXPです。質問は2つです。 1.セル内の文字をファイル名にする方法は? 例えばA1セルに 1153 と入っていたら、ファイルの名前を付けて保存するとき、普通は Book1.xls となりますが、 これを 1153.xls とするにはどうしたらよいですか? 2.下のSheet1タブを2列にする方法は? EXcelの下の方にシート切り替えがありますが、これを2列にするにはどうしたらよいですか?

  • エクセルのbookを開いたときに

    作成したエクセルのBookを開いたときに指定のシートを選択している状態にしたい。 エクセルで作成したBook「基本.xls」にa,b,cというシート3つがあります。 このブックを開いたときに必ずaというシートのセルa1が選択された状態にするにはどうしたら良いのでしょうか?

  • エクセルで他のブックの参照

    ファイル名:Test1.xlsのセルに、"="と入力し、ウィンドウで、Test2.xlsを選択して、Sheet1の"A1"のセルを選択すると、Test1.xlsのセルには、=[Test2.xls]Sheet1'$A$1と入力されます。 そこで、一度Test1.xlsを保存して、再度開くと、、=[Test2.xls]Sheet1'$A$1の部分が、絶対パスに自動的に更新されてしまします。 これを、相対パスで扱う方法ってありますでしょうか? フォルダーを移動させることがあり、どのように対応すればいいのか悩んでいます。 宜しくお願い致します。

専門家に質問してみよう