• ベストアンサー
※ ChatGPTを利用し、要約された質問です(原文:複数のエクセルファイルをひとつにまとめたい(追記したい))

複数のエクセルファイルをひとつにまとめる方法

このQ&Aのポイント
  • 12か月分の伝票ファイルを自動で追記して、ひとつのエクセルファイルにまとめたいです。
  • マクロを使用して、特定のフォルダ内のエクセルファイルを結合することができます。
  • 具体的なソースコードとして、VBAを使ったマクロの例を紹介します。

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

  • ベストアンサー
  • MackyNo1
  • ベストアンサー率53% (1521/2850)
回答No.4

以下のようなキー操作をマクロの記録で記録すれば、セル範囲や貼り付け位置を自動的に検出できるマクロを作成することができます。 まとめ.xlsで「ツール」「マクロ」「新しいマクロの記録」で適当な名前を付けて記録を開始します。 1月.xlsを立ち上げてから、データシートのA2セルを選択し、Ctrl+Shift+Endでデータ範囲を自動取得し、Ctrl+Cで「コピー」します。 まとめ.xlsシートの項目名のセルを明示的に選択し(たとえば適当なセルを選択してからA1セルを選択)、Ctrl+↓で入力されている一番下のA列のセルを自動選択して、記録終了アイコンの右の「相対参照」アイコンをクリックし、↓キーで最終セルの下の未入力セルを選択してから、「相対参照」ボタンをもう一度クリックして相対参照を解除してから、Ctrl+Vで貼り付け、1月.xlsを閉じます。 これで1つのブックのデータがまとめブックに追加されるコードが書かれていますので、Alt+F11でマクロの編集画面を開き、この部分のコードをブック名部分だけ変えて12月分までコピー貼り付けすれば完成です。

osarusan0214
質問者

お礼

なるほど、マクロの記録という機能を使ったことがなかったのですが、このように使用するのですね^^ 勉強になりました。ありがとうございました^^

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

その他の回答 (3)

  • nattocurry
  • ベストアンサー率31% (587/1853)
回答No.3

各月の伝票は、1つのファイルでシートごとに分かれているのではなく、それぞれのファイルが存在するということですよね。 お望みのマクロは、「マクロは勉強中であまり解らないから具体的なコードを書いて欲しい」、と言うような人に理解できるレベルのものではないと思います。 マクロの勉強の基本は、まずはやりたいことを手作業でやって、それを「マクロの記録」で記録して、記録されたコードを見て、それに使われているプロパティやメソッドや関数などを調べて理解することから始まります。 現時点で上級者の人のほとんどが、そのようにして勉強してきたと思います。 この質問の作業としては、 1月のファイルを開く。 2月のファイルを開いて、2月のデータをコピーして、1月のデータの下に貼り付ける。 3月のファイルを開いて、3月のデータをコピーして、1月のデータの下に貼り付ける。 : : m月のファイルを開いて、m月のデータをコピーして、1月のデータの下に貼り付ける。 : : 11月のファイルを開いて、11月のデータをコピーして、1月のデータの下に貼り付ける。 12月のファイルを開いて、12月のデータをコピーして、1月のデータの下に貼り付ける。 だと思います。 もしくは、 12月のファイルを開く。 11月のファイルを開いて、11月のデータをコピーして、12月のデータの先頭に挿入する。 10月のファイルを開いて、10月のデータをコピーして、12月のデータの先頭に挿入する。 : : m月のファイルを開いて、m月のデータをコピーして、12月のデータの先頭に挿入する。 : : 2月のファイルを開いて、2月のデータをコピーして、12月のデータの先頭に挿入する。 2月のファイルを開いて、2月のデータをコピーして、12月のデータの先頭に挿入する。 ですね。 前者の場合は、貼り付ける位置が変わるので、1月のデータの最後を調べる必要がありますが、後者の場合は、同じ場所に挿入すれば良いので、その分だけ楽かも。 ちなみに、データのどこかを選択した状態で Ctrl+A を押したときと、周りに何もデータの無い空白セルを選択した状態で Ctrl+A を押したときでは、結果が異なります。 これをヒントに、実際に手作業して「マクロの記録」を使って、マクロを調べましょう。

osarusan0214
質問者

お礼

ありがとうございます^^ 結構簡単にできるかな?と思いましたが、意外に難しいマクロになるのですね^^; マクロの記録でがんばってみます。ありがとうございました^^

全文を見る
すると、全ての回答が全文表示されます。
回答No.2

(XL2003/2002だとして D:\tempフォルダ内にExcelファイルがあるとします シート名はSheet1です) 過去の月に変更があるとも思えませんが データベースクエリで SQLを編集状態にして SELECT `Sheet1$`.日付, `Sheet1$`.金額, `Sheet1$`.項目 FROM `D:\temp\1月`.`Sheet1$` `Sheet1$` union all SELECT `Sheet1$`.日付, `Sheet1$`.金額, `Sheet1$`.項目 FROM `D:\temp\2月`.`Sheet1$` `Sheet1$` union all SELECT `Sheet1$`.日付, `Sheet1$`.金額, `Sheet1$`.項目 FROM `D:\temp\3月`.`Sheet1$` `Sheet1$` ・・・ とすればつなぐことができ、データを更新すれば変更が反映されます MS-Query でSQLの編集時、添付図のような画面が出ますがOKで無視します

全文を見る
すると、全ての回答が全文表示されます。
  • web2525
  • ベストアンサー率42% (1219/2850)
回答No.1

一度しか行わない操作であれば、コピーして貼り付けを行うのが一番簡単 頻繁に同じ操作を行う必要がある動作ではないと思いますが、どうですか?

osarusan0214
質問者

お礼

ご返答ありがとうございます^^ できれば毎年使いたいもので、自動化したいということを書いておくべきでした。

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

関連するQ&A

  • 複数CSVファイルをExcel形式1つにまとめたい

    VBA初心者です。 似たような質問・回答がありますが、どうも私の意図するところと異なるので、 新たに質問させていただきます。 どうぞお願いします。 仕事場で、基本1日1ファイル取得している複数のCSVファイルを、 1週間に一度Excelファイルに一週間分のデータを追加し、 最終的には1か月毎に1つのExceファイル(1シート)に集計してます。 全ファイルとも内容は同じで、1シートで作成されており、 タイトル行は1行目、2行目以降データ(行:データ数はファイル毎に異なる)、 列数はA-IV列といった構成になります。 新しい1つのファイルにまとめる際には、 B列とG列のみ抽出し、一行目にタイトル行、2行目からデータ、 最終行に次のファイルのデータと、いうように複数のファイルのデータをつなげて 1つのファイルにしたいのです。 ちなみに出来上がったExcelファイルとしては、 A列に元CSVファイルのB列データ、C列に元CSVファイルのG列データ、 B列に各データがどのCSVファイルの物か分かるように、 各ファイル名の日付にあたる後ろ部分を表示させたいのです。 ファイル名から日付を拾えない場合は、 ファイルをまとめる前に、列を挿入し、 C列にデータ日付の項目を作り、そこに日付を入力し、 まとめる際に、B・C列+G列を抽出、といった形で、まとめられたらと思ってます。 *各Exceファイルのタイトルの後部分がデータの日付を表す (タイトル例:0803abcde2013_08_03.xls) B列2行目以降に、それぞれ抽出したデータのファイル名から、 日付にあたる部分を書き出し(8月3日と言ったように)表示させたい。 場合によっては、前部分を抽出するパターンもあるので、そちらもお願いします。 *今後、他の何種類かの複数CSVファイルでもファイル毎に (こちらも全ファイルとも内容は同じ)同様に1カ月毎にまとめたいので、 違う条件でも抽出できるように、応用できたらと、考えております。 (抽出する列がB列とI列のみ、A~C列+F列など) VBAで作業したいと考えてます。色々とお手数ですが、よろしくお願いします。 また、他にお勧めのサイトや、参考になる質問がありましたら、 合わせて、教えていただけると幸いです。

  • Excel 複数ファイルの参照

    説明が難しいのですが、 例えば、デスクトップに[1.xls], [2.xls], [3.xls] ・・・ と連続したエクセルファイルがあり、 新規作成で以下のようなシートを作製して、   A B C D E F 1 1 2 2  3 3 4 4 5 5 6 6 B列にデスクトップ上の各ファイルのセルA1の値を入力したい場合、 数式を「='C:\…\デスクトップ\[***.xls]Sheet1'!$A$1」 として、***部分にセルA1~の数値を代入できるようにしたいのですが、可能でしょうか。

  • Excelにて外部Excelファイルのデータを参照する方法

    お世話になります。 Excelにて外部のExcelファイルのデータを参照する方法を教えていただけませんでしょうか。 具体的には、 1.Excelファイルa.xls b.xls c.xls・・・ があります。 2.a.xlsの a1 に b.xls の a1 の値を入力し、続けて a.xls の a2 に c.xls のa1・・・を繰り返していきます。上手く説明できないので、下を参照願います。 ------------------------------------------------ <a.xls> |a |b |c -+------- 1|a1|b1|c1 ←b.xls ないのa1-c1のデータ 2|a1|b1|c1 ←c.xls ないのa1-c1のデータ 3|a1|b1|c1 ←d.xls ないのa1-c1のデータ ------------------------------------------------ 上記を数百のファイル分行いたいのですが、外部ファイルを開いて該当のセルをコピーしていると非常に時間がかかります(といいますか無理でしょう)そこで、これらを数式から指定して、セルにコピーする事により、作業を効率化したいというわけです。 そのような方法がございましたら、教えていただけませんでしょうか。 よろしくお願い致します。

  • 複数EXCELのセルデータを違うセルに移したい

    昨日、複数のエクセルのファイルを1つのファイルの1枚のシートにするやり方を質問させていただきました。csvファイルでしたのでできなかったことがわかりました。お答えいただいた方本当にありがとうございました。助かりました。教えてgooのやり方がわからずコメントを書けませんでしたのでここに書かせていただきます。 参考:http://okwave.jp/qa/q7735457.html さらに質問なのですがどなたかお願いいたします。 今、一枚のシートに日付ごとに項目が入っているのですが、項目の前の列にそれぞれ日付をつけるやり方があれば教えていただければと思います(下図のようになっています)。できればいらない部分は排除したいです。 図としましては        B列  C列 (数字は行の番号です。)       3      日付       4   いらない部分      5   ※  項目       6   ※   項目       7   日付 のような形になっています。 日付はC列の3行目からランダムに入っています。次の日付までB列の前に先の日付を入れたいです。(4,5の※部分にC3の日付を入れたいです)。あと出来ればいらない部分は消したいです。 または複数のEXCEL(.CSV)ファイルから1つのファイルの1枚のシートにする際にそれを行えたら嬉しいです。 複数のファイルの場合は   B列  C列         (数字は行の番号です。)   3    日付※ 4   いらない部分 5    ※ 項目         :   の形になっていてC列の3行目に日付が入っているのとC列4行目にいらない部分が入っているのはどのファイルも変わりありません。 わかる方がいらっしゃいましたらぜひともよろしくお願いします。また、CSVファイルになっていますのでお願いします。(図がへなへなになってしまって申し訳ありません)

  • 1つのExcelファイルを特定キー毎に複数ファイルに分割出力したい

    VBScriptで次のようなことはできますか? 例えば次のようなエクセルファイルがあるとします。 全社員.xls A部署 番号1 名前1 A部署 番号2 名前2 A部署 番号3 名前3 B部署 番号4 名前4 B部署 番号5 名前5 C部署 番号6 名前6 これを、部署ごとに複数のファイルに分割して出力したいです。 ファイル名は、部署名.xls A部署.xls A部署 番号1 名前1 A部署 番号2 名前2 A部署 番号3 名前3 B部署.xls B部署 番号4 名前4 B部署 番号5 名前5 C部署.xls C部署 番号6 名前6 プログラムについては無知なので、オススメの書籍やサイトがあれば、 併せて教えて頂けたら嬉しいです。 よろしくお願いします。

  • 複数のexcelファイルの置換について

    AAA.xlsというファイルの中の情報を複数のexcelファイル(A.xls、B.xls、C.xls、D.xls)でリンク付けしてあるとします。 AAA.xlsをBBB.xlsに名前を変更するとリンクが成り立たなくなってしまいます。 そこで、一括でリンクを変更する方法を教えてください。 マクロでもいいです。 =[AAA.xls]Sheet1!$A$1 これを =[BBB.xls]Sheet1!$A$1 に一括変更したいのです。 よろしくお願いします。

  • EXCEL VBA 複数ファイル値を集計

    yakkunnと申します。 お世話になっております。 下記処理を実現するためのEXCEL VBAコードをご教授いただけないでしょうか。 ■やりたい事 デスクトップに「実績集計.xlsx」というファイルがあります。 このファイルにボタンを配置し、このボタンをクリックしましたら、C3セルに記述されているファイルパス配下を見てその配下ファイルを全て開き、各ファイルの値を「実績集計.xlsx」に全て転記するVBAコードをご教授いただきたく思います。 ■転記内容 例えばA.xlsx~C.xlsxという3つのファイルがあるとします。この3つのファイルを開いて・・ 左が「A.xlsx」、右が[実績集計.xlsx」とします 処理付を転記・・B4セル⇒B7へ転記 コードを転記・・B7セル⇒C7へ転記 商品名を転記・・C7セル⇒D7へ転記 数量を転記・・ D7セル⇒E7へ転記 金額を転記・・ E7セル⇒F7へ転記 これをA.xls~C.xlsまで繰り返し、実績集計.xlsxに値をどんどん転記したいです。 金額のF列の最後に合計金額が出力されれば最高です。 よろしくお願いいたします。

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

    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なのですが・・・。) 説明が足りないかもしれませんが、どなたか教えてください。 よろしくお願い致します。

  • エクセルファイルでのデータ入力について

    あるエクセルファイル(a.xls)をマスターファイルとし、セルAを共通項目,セルB,CをセルAに対する情報とした時、このセルAの並びを別の複数のエクセルファイル(a1.xls,a2.xls)に表示し選択させ、選択された項目とその情報をそのエクセルファイル(a1.xls,a2.xls)に表示したいのですがどのようにすれば実現できるでしょうか?何らかのヒントを教えて下さい。宜しくお願い致します。 (a.xls) 共通項目 情報1     情報2  項目1  項目1情報1  項目1情報1  項目2  項目2情報1  項目2情報2  項目3  項目3情報1  項目3情報3  項目4  項目4情報1  項目4情報4 (a1.xls)  項目1を選択 共通項目 情報      項目1  項目1情報1 (a2.xls)  項目1を選択 共通項目 情報      項目1  項目1情報2

  • エクセル:複数ブックをマクロを使い同一条件で集約・抽出したい

    教えて下さい 複数のエクセルブックがあります(全て1フォルダーに集約してある) それぞれA列に日付、B列に金額が入っている 複数あるブックを指定する日付で次から次へと検索しその金額とファイル名を新しいブックに縦に全てコピー(抽出)したい ちなみに、必ず条件にあうデータがそれぞれのブックにあるとは限りません 無い場合もあります 無い場合は特に抽出する必要はありません ========================================================= 例:2007/12のデータを抽出したい ★抽出結果イメージ    A      B    C 1 2007/12   200   ああああ.xls 2 2007/12   300   いいいい.xls 3 2007/12   100   うううう.xls 4   ・      ・      ・ 5   ・      ・      ・ 6   ・      ・      ・ 7   ・      ・      ・ ========================================================= このような場合、マクロでできますか?マクロは初心者です 教えてください よろしくお願いします 複数あるブックとは数的に60とかあります ちなみに現状はファイルを一つ一つ開き、指定日付を検索し見つけだし その行をコピーペーストしています たくさんブックがあるので、これをしていると目がチカチカしてきてしまいます この作業がマクロでできると、すごく感激なのですが・・・ どなたか、お知恵・お力をおかしくださいませ

専門家に質問してみよう