• 締切済み

Excel VBA 複数ブックのシート結合方法

複数ブックの特定のシート(都度指定)のみを結合するマクロを組みたいです。 例えば、「ファイルマージ前」というフォルダがあって、その中には数値のみ違う同フォーマットのアンケート集計結果が保存されています。 このフォルダ内には50ほどのブックが保存されていて、そのブック内の「N表」というシート(50あるブック内全てに存在するシート)を新規ブック(マクロを組み込むブック)の1シートに上から順に値コピーしていきたいです。 今後、別の機会でファイルマージが必要になった際にも使用出来る様に、シート名を都度指定(セルにシート名を入力して、そのシート名を参照する等)出来るようにしたいのですが、自分の知識とネット等で調べた情報のみではうまく作成出来ませんでした。 詳しい方のお知恵をお借りしたいです。 宜しくお願い致します。

みんなの回答

  • HohoPapa
  • ベストアンサー率65% (454/690)
回答No.2

VBAを提示するのはやぶさかではないものの、 >数値のみ違う同フォーマット このフォーマットの説明が欲しいのです。 1行目からデータが埋まってますか? それともタイトル行がありますか? 更に、例えば、データのA2セルから 下方向に探して最初に出会う空欄の行の直前が最終行と判断していいですか? 列数は固定ですか?、それとも A1セルから右方向に探して最初に出会う空欄の列の直前が最終列と判断していいですか?

  • imogasi
  • ベストアンサー率27% (4737/17068)
回答No.1

VBAの兄弟の「FSO」を調べて・勉強してください。 そして対象にしないブックはそのフォルダから手作業などで、除外する。初心者向けに、思考やコードを簡単にするためです。ブック集団に対して、For Each・・Nextを使えるようにするためです。 するとそのフォルダに対し、For Each・・Nextで対象ブックを順次全数、捉えられるでしょう ーー 1つのブックを捉えた段階で、出来ればForEach ・・Nextで全シートを捉え、 邪魔な(スキップしたい)シートは、シート名の特徴で、IF文で、除外出来れば、コードが簡単に済みます。 ーー データ累積シートを1つ考え(固定する)、1つのシートを読むごとに、セルA1のCurrentRegionのセル範囲ををもとっめ、累積シートのEnd(xlup).Rowでその時点での最終行を素の求め、その+1行に、シートのデータをコピー貼り付けする。これを全ブク部のシートにわたって繰り返す。 ーー このやり方では、各シートに、最上1行とかに、見出し行がもしあれば、重複して邪魔になる。 事後削除とか、Resizeで最上1行を捨てる方法が考えられる。 == 全てWEBに、実例コードが見つかると思うから、Googleで「見出し行 削除 Resize」などで照会して調べて、多少手直しして下さい。 その他「VBA CyrrentRegion」「VBA  FSOの使い方」「VBA End(xlup).Row」など。 === 以上で「望まない対象データが混じる」「必要なものが漏れる」などの場合がないか、プログラムを書く前に、思考実験してみてください。この訓練が大切です。

関連するQ&A

  • 複数のブックを新しいブックのにまとめたい

    1つのフォルダに現在20のブックがあり、さらに今後200位まで増えます。 それぞれのブックはPS×××××××(xは数字)で名前がついてます。 全てのブックのシート1に、A2~L2にかけて数値・名前などが記述されてます。 これらを「集計ブック」と名づけたブックの1つのシートにまとめたいのです。 「集計ブック」へは、A2~L2にPS××××××0のデータを、A3~L3にPS××××××1 のデータを、とシートの末尾7桁の昇降順(数字の少ない方から下へ大きくなるように) に並べたいです。 PS×××××××を作成し、フォルダに保存するだけで、自動的に「集計ブック」に 集計されていくマクロを教えて下さい。 マクロ自体も素人なので、操作方法・手順なども付け加えてくれると助かります。 よろしくお願い致します。

  • エクセル:複数ブックから任意のシートを選んで結合

    お世話になります。 複数のブックをひとつにまとめるという質問は過去にもたくさんあったのですが次の場合の対処がわかりませんでしたので教えてください。 なお手動でやるのではなく、マクロやフリーソフトなどで自動化したいと思っています。 1つのフォルダに複数のブックがあり、各ブックには複数のシートがあります。各ブックの先頭シート(一番左のシート)だけを1つのブックにまとめたいのです。 現在、各ブックの先頭シート(一番左のシート)の名前には「人の名前」が入っています。 1つにまとめるブックを 全員.xls として、このブックの各シートに各ブックの先頭シート(一番左のシート)の名前(人の名前)をつけて保存したいのです。 結合する際に「人の名前」のようにシート名が違うことが問題になるならば、すべてのブックのSheet1だけをまとめるというやり方でも構いません。 この場合、全員.xlsの各シート名は適当でも良い。 よろしくお願いします。

  • エクセルVBA 一覧にあるブックを順に印刷するには

    こんばんは。ブック名の一覧の中から指定したものを順に印刷をしていく方法を教えてください。 D10から下にブック名が書いてあります。 その横(C列)に“印刷”と入力してあるブックのシートすべてを順に印刷をしたいと思っています。 ただし、シート名に「保存」という名前を含んだものについては印刷対象から除きたいというわがままなものなのです。 ブックはすべてマクロ実行のファイルと同じフォルダの中にあります。 これ、可能でしょうか?よろしくお願いします。

  • 複数のブックのデータを一つのブックにまとめたい

    http://t_shun.at.infoseek.co.jp/My_Page/Excel-VBA/vba_page1.htm ↑の 7. 指定したフォルダ内にあるExcelファイルを検索して開く の部分のマクロを利用して、集計.xlsというブックで、複数のブックを開くようにしましたが、そのブックを開いた時にそのブックのSheet2の中のデータのみコピーして、集計.xlsに貼り付けたいのですが、どのようにすればよいのか困っています。 指定したフォルダの中には、回答01.xls 回答02.xls ・・・と16個のブックがあります。順番に開いてコピーをするときに、どのようにブック名とシート名を指定すればよいのかわからず困っています。 何か参考になるものがあれば教えてください。 よろしくお願いします。

  • エクセルVBAで複数のブックから指定のシートを別のブックに複写するには

    エクセルVBAの超初心者です。 複数のフォルダに「●●社計算書(2010年3月).xls」・・・()内の年月は毎月増えます。格納されているフォルダは各会社名です。 というブックがあります。その各ブック内の売上というシートにある商品コードと売上金額を別の集計用ブックで集計したいと思っています。 どのように集計用ブックにコードを書いたらよいのでしょうか? 1 商品コードは各社共通です。 2 ブック名は共通ですがブック内のフォーマットは共通していません。(シート名は共通) 3 集計するのは集計時の年月度のデータです。 要領を得ず、ぶしつけな質問かと思いますが、大変困っています。 どなたかお分かりになる方、ご教授願います。 

  • フォルダ内にある複数エクセルブックを一つにまとめたい

    マクロを使って複数ブックを一つにマージしたいです。 どなたか宜しくお願いします。 フォルダに16個のエクセルブックがあります。ブックは4つのシートでできています。シートの列数は共通なのですが、行数が異なります。 これを新しいブックにコピペでつなげていきたいのです。 すみませんがどなたか宜しくお願いします。

  • 複数のブックのデータを1枚のシートにまとめるマクロ

    同じような質問は過去いくつかございますが、下記の条件を満たすことができず、 大変苦戦しております。 <条件> 1.フォルダ内すべてのエクセルで作成されたブックを、ブック名「全部」のsheet1に結合する。 2.結合するブックにはシートが複数あり、すべてのシートを結合するわけではなく、  シート名「社員」の、指定した範囲内「a10:t100」を結合する。 3.ブック名「全部」のsheet1のa列には結合元のブック名を表示する。 ご教授いただければ幸いでございます。 どうかよろしくお願いいたします。

  • EXCELで複数ファイルのセル抽出マクロ

    EXCELで複数ファイルのセル抽出マクロ いつもお世話になっております。 首題の件ですが、複数のEXCELファイル約100個があるフォルダに入っています。 フォーマットは統一されていますが、記載してあることは別です。 特定のセルの内容を抽出し、別のEXCELブックに保存したいと考えております。 例) パス-D:\集計\ ファイル名-統一されていません シート名-アンケート(統一している) 抽出したいセル-A1:A10とC10:C20(結合されているセルもあります) できれば保存するEXCELブックに抽出したA1の全集計結果をA1に、 抽出したC10の全集計結果をC10に保存したいのです。(1ファイルずつ改行を入れて) マクロを検索して調べてみたのですが、自分の環境に合わせてみるとうまく動かなく、 (単に私の勉強不足ですが・・・)お手上げ状態です。 皆様、宜しくお願いします。 また、厚かましく下記にも別件で質問をしております。 お力添え頂ければ幸いです。 http://okwave.jp/qa/q6170791.html

  • VBA 複数ブックへ書き込み

    VBA初心者です。 1つのフォルダ内にある100(ファイル名001から100)個のエクセルファイル(ブック)の特定の場所(すべてのエクセル ファイルはファイル名は違うが、同一のシート名で同一のセルの構造になっている。 以上に対して、1つのもとになるファイルA(ブック、シート)の特定のセル(同一列の行を上から順次下る)セルの値を先の同一フォルダ内のエクセルファイル100(001~100)個に対して、ブックオープン、特定セルのデリート、特定セルへの書き込み、ブック保存という一連の作業を行いたいです。 多数のファイルから1つの集計ファイルに値を読み込んできて書き込むサンプルはあるようですが、逆に1つのファイルから同一フォルダ内の多数のファイル(ブック)の特定場所に書き込むためのサンプルコードを教えていただけると大変助かります。 以上よろしくお願いいたします。

  • EXCEL VBA 複数のファイルをひとつのシートにまとめたい

    多数のユーザーから集計表が送られてくるので、いくつかの取り纏めの箇所を経由して集計をまとめようと思います。 マクロでそれぞれの集計表を特定のフォルダに格納し、フォルダ内の対象ファイルを探し、そのファイル名をシートに書き出すところまで行ったのですが、ひとつのファイルのひとつのシートにまとめる方法がわかりません。 (元の集計表は総て同じレイアウトになっています。 これをひとつのシートの下方向に追加していくようにひとつの表にまとめたいのです。) ある取り纏め担当者は3つのファイルをまとめれば済むかもしれませんが、ある担当者は20個のファイルをまとめないといけないかもしれません。 この後をどうすればよいか、どなたかお教えください。 宜しくお願いいたします。 説明が分かり難いようでしたら申し訳ございません。

専門家に質問してみよう