• ベストアンサー

エクセルのマクロでファイルのシート名一覧を取得したい

特定フォルダ内にエクセルのファイルが複数あります。 エクセルのファイル名の取得は「Filesearch」を使い取得出来ました。 更にそのファイルの中にあるシート名を取得し、シート名の一覧を ワークシートに貼り付けたいと考えています。 よろしくご教授ください。

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

  • ベストアンサー
  • hallo-2007
  • ベストアンサー率41% (888/2115)
回答No.2

過去スレが残っていましたので紹介します。 A1セルに特定のフォルダのパスを入れておきます。 Sub Sample1() Dim buf As String, i As Long Dim j As Long buf = Dir(Range("A1").Value & "\*.xls") Do While buf <> "" i = i + 1 Workbooks.Open Worksheets(1).Range("A1").Value & "\" & buf ThisWorkbook.Worksheets(1).Cells(i + 1, 1).Value = buf For j = 1 To Worksheets.Count ThisWorkbook.Worksheets(1).Cells(i + 1, j + 1) = Sheets(j).Name Workbooks(buf).Activate Next Workbooks(buf).Close SaveChanges:=False buf = Dir() Loop End Sub で試してみてください。

matchy4649
質問者

お礼

返事が遅くなり申し訳ありませんでした。 ありがとうございました! 出来ました。

その他の回答 (2)

  • xls88
  • ベストアンサー率56% (669/1189)
回答No.3

ANo.2で、hallo-2007さんが提示されたコードではシートに書き出しているようです。 アレンジして流用すればどうでしょうか。(そのためにはコードを解読しなければなりません。) >エクセルのファイル名の取得は「Filesearch」を使い取得出来ました。 上記内容がお出来になる方ですから、大丈夫だと思います。 トライして、解らない、うまくいかない、ということなら、試しているコードを提示してみてください。 教えてもらったマクロを動かすことが「出来ました。」ではなく、「理解ができました。」にしてください。 偉そうなことを言って済みません。

  • xls88
  • ベストアンサー率56% (669/1189)
回答No.1

下記でシート名(グラフシート含む)が取れます。 Sub testシート名取得()   Dim appobj As Object   Dim sht As Object   Set appobj = GetObject("C:\Exceldata\ABC.xls")   For Each sht In appobj.Sheets     MsgBox sht.Name   Next   Set appobj = Nothing End Sub

matchy4649
質問者

補足

返事が遅くなりまして申し訳ありません。 ありがとうございます。 甘えてしまうようですがもう一点教えてください。 msgboxですとそれぞれOKを押さないと表示されませんが ワークシートに書き出すにはどのようにすれば よろしいのでしょうか? 教えていただいておいて失礼とは思いますがご教授ください。

関連するQ&A

  • エクセル・マクロ・・・シート名の取得等

    エクセル・マクロ・・・シート名の取得等 エクセルのマクロで質問です。 ほぼ初心者です。 社内データの処理をしたいと考えています。 マクロを組みたいエクセルブックの構成としては・・・ シート名一覧 集計シート 操作 という3つのシートがあり、 その後ろに各社員のデータシートがあります。 山田太郎 田中花子 ・ ・ ・ 部署により社員数が異なるためシートの4枚目以降は そのエクセルファイルによりシート数が異なります。 やりたいことは以下の2点です。 (1)シート名(社員名)の取得 シート名一覧に各シート名を一行ずつ入れて 一覧を作りたいです。 シート名取得&リスト化のマクロは大体わかりますが、 「シート名一覧」、「集計シート」、「操作」の3つのシート名は 一覧から外したく、どうしたらいいのかわかりません。 また、各シート名を取得した列の横の列に 各社員のシートにあるデータの一部(セルC5:C8)を 貼り付けたいです。 (2)集計シートに各社員のシートのD列の情報(D6:D43)を順に貼り付けていく。 シート名や数が固定されたものであれば何とかできそうなのですが、 不特定になるとどうしたらよいかさっぱりわかりません。 どなたかご教授お願いいたします。

  • エクセルのマクロについてお尋ねします。

    エクセルのマクロについてお尋ねします。 あるフォルダの中のエクセルファイル名一覧を取得して、ユーザーがそれを複数選択し そのファイルを選択したものだけ複数自動取り込みたいのですが、ファイル一覧の取得はできそうなのですが、その先どうしたらいいでしょうか?

  • エクセル2007シート名一覧を出したい

    エクセルファイルのすべてのシート名の一覧を1枚目に新しく作成したい。 マクロ自体使った事がないので 出来れば簡単な方法が有れば 表紙としてシート名一覧を作成する。簡単な手順をお願いします。 枚数は約10枚程度です。

  • Excelのマクロで、MP3のID3タグ情報を取得するには?

    WinXP・Excel2003です。 Excelのマクロを使って、ID3タグ情報をワークシートのセルに抜き出したいと考えています。 指定したフォルダの中にある複数のMP3ファイルから、ID3タグ情報を取得するにはどうすればいいでしょうか? タグ情報の編集ではなく、一覧にして誤字脱字のチェックをするだけです。

  • 複数のEXCELファイルより一部の行を自動でマージするマクロ

    「(1)複数のEXCELファイル」より、「(2)特定のシート」の中のさらに「(3)特定の行」をコピーし、あるEXCELファイルの1シートに挿入していくマクロ(VBA)か、ソフトが掲載されているサイト、もしくは、やりかたを教えてください。 1.EXCELは、2003 2.「(1)複数のEXCELファイル」は、一つのフォルダにあり、データ形式は一緒。  そのフォルダにはEXCELファイルしか置きません。 3.「(2)特定のシート」について、シート名はどれも一部のみ一致します。  または位置(順番)は一緒です。 4.「(3)特定の行」はどのファイルも作りが一緒です。 VBA初心者ですが、ヒントをいただければ頑張りたいと考えています。

  • エクセルのマクロであるフォルダ内にある全エクセルファイルのシート1!(

    エクセルのマクロであるフォルダ内にある全エクセルファイルのシート1!(A1:X365)の値を取得し、コピー元のエクセルファイル名のシートに貼付ける方法を教えて頂けないでしょうか?できればコピー元のエクセルファイルは開かずに実行させたいです。エクセルは2003を使っています。

  • 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

  • 複数ファイルから特定シートのコピー

    同じフォルダ内に、エクセルファイルがいくつかあります。 そのフォルダ内のファイルから、特定のシート名(例:シートA)のシートをコピーしシートAだけの新しいファイルとして作成しようと思います。 シートAを含むファイルは複数あります。 何か方法がありましたらご教授お願いいたします。

  • VBAを使い、同一フォルダにあるファイルの特定のシートの情報を取得したい

    はじめまして。 書籍や過去の質問等を調べましたが、類似するものを見つけられなかったため質問させていただきます。 Xというエクセルファイルで、Xと同一フォルダ内にある、ファイル名に特定の文字列(例えば「月報」)を含んだ全てのエクセルファイルの、特定の文字列(例えば「○年○月」)を含んだ全シートの、一定のセル範囲をひとつのシートにまとめたいと思っています。 X内のコマンドボタンで動かす予定ですが、複数のボタンになると自分では思っています(ボタンAでファイル名の取得、ボタンBでシートの取得、ボタンCでセルに貼り付け、みたいな感じで。ボタンの数は特に制限はないです) 要点としては a, 定定の文字列を含んだファイル名の取得 b, aで取得したファイル内の特定の文字列を含んだ全てのシート内の一定のセル範囲の取得(シートの数はファイルによる。必ずしも1つというわけではない。) c. bで取得した一定のセル範囲のデータを、1つのシートにまとめる。 あとはこれらのデータをtxtやcsvなどに出力できるようにするつもりです。 私がやってできたのは、同一フォルダ内にあるファイル名に特定の文字列を含むファイルの全てのファイル名を指定したセルに吐き出すことしかできませんでした。 なんか、ややこしい表現かもしれませんが、ご指導お願いします。 環境はxp、エクセル2003です。 よろしくお願いします。

  • Excelマクロ シート名一覧からシート削除

    Excelマクロで質問させてください。 任意のシートに記載されたシート名一覧を参照して、そこに記載されているシート名のシートを、ブック内から削除するマクロは作れますでしょうか? よろしくお願いします。

専門家に質問してみよう