• ベストアンサー

Excelの2つのBOOKのデータ統合のVBA

Excelの2つのBOOKの項目が同じリストのデータを統合できるVBAを教えてください。項目は、処理結果、金額、年月日、番号、品名の5項目がA列~E列まででデータは複数行あります。VBAは初心者です。どうぞよろしくお願いいたします。

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

  • ベストアンサー
  • kkkkkm
  • ベストアンサー率65% (1607/2444)
回答No.2

実際のブック名とシート名に変更してください。 Ws1の方の2行目からA列の最終行までのAからE列のデータを Ws2の方のA列の最終行の次の行のAからE列に追加します。 Sub Test() Dim Ws1 As Worksheet, Ws2 As Worksheet Dim LastRow1 As Long, LastRow2 As Long Set Ws1 = Workbooks("Excelの2つのBOOKのデータ統合のVBA.xlsm").Sheets("Sheet1") Set Ws2 = Workbooks("Excelの2つのBOOKのデータ統合のVBA2.xlsx").Sheets("Sheet1") LastRow1 = Ws1.Cells(Ws1.Rows.Count, "A").End(xlUp).Row LastRow2 = Ws2.Cells(Ws2.Rows.Count, "A").End(xlUp).Row Ws2.Cells(LastRow2 + 1, "A").Resize(LastRow1, 5).Value = Ws1.Cells(2, "A").Resize(LastRow1, 5).Value Set Ws1 = Nothing Set Ws1 = Nothing End Sub

bigsky0819
質問者

お礼

教えて頂きありがとうございました。 希望どおりに動作いたしました。素晴らしくて感動しました。

その他の回答 (1)

  • chayamati
  • ベストアンサー率41% (254/607)
回答No.1

今晩は 結合とはどうする事ですか? アクセスではリレーションシップ《関連付け》がありますが ここでは2つのSheetを1つのSheetにする事ですか? なら一つ目のSheetの末尾に2つ目の情報を追加するですか?

bigsky0819
質問者

お礼

コメント頂きありがとうございました。 結合ではなく統合です。BOOK1とBOOK2のそれぞれのSheet1のデータを一つに統合したかったのですが、解決いたしました。

関連するQ&A

  • Excelにおけるデータ統合

    Excel関係の書籍では、“(離れた位置にある)データの統合(consolidation)”の標準機能およびVBAによる手法について記述されていますが、いずれも、この“データ”は数値を対象にしています。 “データ”として数値ではなく文字列(たとえば、英文)はExcelのデータ統合(consolidation)機能の対象になるのでしょうか。私にとって統合を必要とする対象は、複数(数十~数百)のメンバー各々のExcel bookです(カラム、シート、レコードの使い方、名称等フォーマットは各book間で共通で、レコード内容は英文 文字列 - センテンスないしフレーズ - です)。 VBAで処理できるでしょうか、事例等、手かがりをご指導ください。

  • エクセルVBA データを別シートに書き込む

    エクセルの、あるシートのデータを、別シートの項目条件の一致するセルに 書き出す方法を教えていただけますでしょうか?  元のシートには  A列     B列    C列 ID番号 年月日番号  金額 ID番号 年月日番号  金額 ID番号 年月日番号  金額  ・      ・       ・  ・      ・       ・ という形で、データが入っています。各列でデータには重複はありますが、   A列とB列の内容が共に同じという行は、ありません。 これを列項目がID番号、行項目が年月日番号の、金額を参照する表にしたいのです。 新しいシートのA列に降順に全ID番号を、1行目に同じく全ての年月日番号をいれ、 元のシートのC列データ(金額)を新しいシートの該当セルに書き込むには どのようにすればいいでしょうか?このような感じで‥。    月日1 月日2 月日3‥‥ ID1 金額  金額  金額 ID2 金額  金額  金額 ID3 金額  金額  金額  ・  ・  ・ 実は元のシートは10枚ほどあり(期間で区切っています)、おまけに各シートには 登場しないID番号もあります。 そこで、すべてのID番号と年月日番号をまとめ、ひとつのシートにしたいと考えた次第です。 1枚のシートならばピボットテーブルで何とかなるのですが、それをまとめようとすると、 データの量が膨大で、PCがとまってしまう(のか計算が終わらない気が‥) VBAを使えば何とかなるのかもと思いまして、質問いたしました。 エクセルは2007です。 どうぞよろしくお願いいたします。

  • 複数のExcelブックの可視セルを統合VBA

    いつもお世話になっております。 複数のExcelブックの可視セルのみを、別のブックの1つのシートに統合することはできるのでしょうか? やりたいことは、始めに複数人に同一ファイルを配布し、1つのフォルダにそれを纏め、各担当者ごとでフィルタを掛けた部分(可視セル)だけを1つのブックの2シート目(1シート目はAccessにリンクさせています)に纏めたいと思っております。 ファイルは、1行目に集計・2行目に各項目があり、必要データは3行目からです。 VBA初心者の為、どなたかおわかりになる方いらっしゃいますでしょうか? 宜しくお願いいたします。

  • Excel VBAにてデータのある列の指定とブック間コピーについて

    初めまして。Excel VBA初心者です。よろしくお願いします。 以下の表の状態で、たとえば、B列の2行目からデータが使用されている行(以下の例では40行目ですが、ブックの内容により行数が変化します)まで、別のブックにコピーする方法があれば教えて頂きたいです。 すみませんが、よろしくお願いいたします。 A B C D E ------------------------------- 1 あ い う え お 2 い う え お か     ・     ・ ・ 40 a b c d e

  • アクセスの外部データ(エクセル)の取り込み。VBA

    アクセスの外部データ(エクセル)の取り込み。VBAの質問です。 アクセス2003 エクセル2003 不要な行・列がある場合の外部データ取り込みVBAを教えて下さい。 今は、エクセルで削除して取り込んでいます。 アクセスに「得意先リスト」というテーブルを作っています。 コード(テキスト型)主キー 名称(テキスト型) フリガナ(テキスト型) 郵便番号(テキスト型) 住所1(テキスト型) 住所2(テキスト型) TEL(テキスト型) FAX(テキスト型) エクセルブック[得意先リスト.xls] シートは「リスト形式」のみです。 1~4行は不要。 5行目が見出しです。 A~AZ列までデータがあります。 必要な列は、B・C・D・F・G・H・M・N列です。 セルの書式設定は「文字列」です。 [アクセス エクセル インポート 行 列 削除]などでサンプルVBAを探しましたが見つからなかったので質問させて頂きました。 申し訳ありませんが、教えて下さい。

  • 複数シートのデータを行列を入れ替えて統合したい

    現在1ブックに30シートが入っています。 30シートすべて同じフォーマットで A      B 項目名1 データ1 項目名2 データ2 … のように複数行2列の内容です。 この30シート分のデータを行列を入れ替えて1シートに統合し A項目名1       B項目名2       C項目名3 シート1のデータ1  シート1データ2  シート1のデータ3 シート2のデータ1  シート2データ2  シート2のデータ3 … シート30のデータ1  シート30データ2  シート30のデータ3 のようにしたいのです。何ブックもあり、手動では時間がかかるため VBAで処理できたらと思います。 どのようにすればよいか教えていただければ助かります。

  • エクセル(vba)で教えてください。

    エクセル(vba)で教えてください。 vbaはほぼ初心者ですので、皆様のお知恵を拝借させてください 現在リストを作成しているのですが、最終更新日時を自動で取得するようにしてみたいのですが、うまくいかないです。 リストは列(項目)固定で、最終行に追加していくというものです。 1カテゴリ=1行での入力になります。 例えば、A,C列の項目のみ記入すると、その行のL列に自動で日時が入力される。 また翌日ブックを開いても、その日時は最終入力日のままだが、追加でD列の項目を 入力すると日時も更新される、というものです。 説明が足りないかもしれませんが、どなたか詳しい方よろしくお願いします。

  • 複数行あるExcelのある列の情報を統合したい

    以下のことを、Excel2010のVBAで実施したいのですが、どなたかご教示いただけないでしょうか。 これまで、VBAを自身で作成したことがなく、お手上げ状態につき、どうかよろしくお願いします。 実施したいことは、下記または添付画像のように、 「品名」(A列)、「品番」(B列)および他の列項目(###)のデータが完全一致の場合、ひとつの行に統合して、「エラー番号」(列D)のデータを列Dの中で、セミコロン区切りで結合させる、 です。 ・統合元となった行は、「エラー番号」の統合後に削除する。 ・「品名」AAAの「エラー番号」NO333のように統合後の「エラー番号」にダブリが残っても構いません。 ・件数の上限はありません(Excel2010の上限1048576まで対象行があると想定) ・他の項目(###)は複数あるのですが、「エラー番号」の列がD列という前提でお願いします。 【VB実行前】 列A 列B 列C 列D 品名 品番 ### エラー番号 AAA A123 ### NO111;NO333 BBB B123 ### CCC C123 ### NO111 AAA A123 ### NO222;NO333 CCC C123 ### NO555 AAA A12345 ### NO222 CCC C12345 ### NO111 AAA A123 ### NO999 【VB実行後】 列A 列B 列C 列D 品名 品番 ### エラー番号 AAA A123 ### NO111;NO333;NO222;NO333;NO999 BBB B123 ### CCC C123 ### NO111,NO555 AAA A12345 ### NO222 CCC C12345 ### NO111

  • VBA 別BOOKへのデータ転記について

    VBA初心者です。 以下のことがしたいのですが、 コードをご教示いただきたくお願いいたします。 BOOKが5つあります。 BOOK1:抽出用(Sheet2に日々の受注データを入れています)        BOOK2:転記100用 BOOK3:転記200用 BOOK4:転記300_400_500用 BOOK5:工事番号用 BOOK1:抽出用はA列からQ列まで工事番号ごとに2行目から受注データが入っています。 抽出用のsheet2のA列に「1」と入力することで転記したいデータだというフラグにし、 抽出用O列のコード100,200,300,400,500(工事の種類のようなものです)を見て、 該当のBOOK2から4にその工事番号が転記がされているか? (されていれば登録済みのメッセージ表示) 転記がされていなければ新規に登録、 新規登録の際に、抽出用Sheet2のD列の工事番号、I列の件名、K列の数量を表示して、 このデータを新規登録しますか?のようなメッセージを出し、Yesなら新規登録。 さらに、新規に登録した際にはその工事番号を名前とするBOOK5を新規作成、 BOOK5にも抽出用の受注内容を転記。 BOOK2から4に転記された工事番号をクリックすると その工事番号のBOOK5にジャンプするようにしたいのです。 抽出用A2とA4に「1」と入力された場合(O列は共に200) BOOK1抽出用データの転記したいセル番地  →  BOOK3転記200用のセル番地 A2のデータ D2 → A7 K2 → A8 C2 → A9 H2 → A10 I2 → A11 F2 → D7 L2 → D8 M2 → D9 J2 → D10 C2 → I5 Q2 → J5 A4のデータ D4 → A12 K4 → A13 C4 → A14 H4 → A15 I4 → A16 F4 → D12 L4 → D13 M4 → D14 J4 → D15 C4 → I10 Q4 → J10 BOOK2から4は1つの工事番号を5行使用して表わしています。 ですので、1つの工事番号が7から11の行、 2つ目の工事番号が12から16行目となり、それぞれ100件分の工事番号を入れられるように 作成してあります。 またBOOK5については、(A2のデータの場合)以下のように転記し、ファイル名を抽出用D2の工事番号にしたいです。 A2のデータ D2 → A3 K2 → A4 C2 → A5 H2 → A6 I2 → A7 F2 → F3 L2 → E4 M2 → E5 J2 → E6 大変長くなってしまいましたが、以上のようなことをしたいと考えておりますが、 当方、VBA初心者でして参考書とネットを駆使して抽出用のVBA(CSVデータをコピーして加工する)ことにすら大苦戦しております。 なんとかお力を貸していただけないでしょうか? ご教示よろしくお願いいたします。

  • Excel VBAでデータを自動処理したい(2)

    Excelで大量のデータ処理をしなくてはならないのですが、以下の処理をExcel VBAで自動処理できないでしょうか?どなたかお知恵をお貸しください。 別シートに参照リストと未完成リストがあります。参照リストのA列のデータの並びと未完成リストのA列の並びを同じくして、未完成リストを完成させます。参照リストのA列の並びはこんな風です。1 2 3 3 5 6 7 8 8 10 ・・・(データは昇順ですが必ずしも連番ではなく、同じデータが並ぶこともあります。) そして未完成リストの方は、1 2 3 4 5 7 8 10 ・・・といった風です。未完成リストのA列は1 2 3 3 4 5 7 8 8 10・・・という風にしたいのです。つまり参照リストにあっても、未完成リストにないデータは無視します。(上の例では、6です。)参照リストになくて、未完成リストにあるデータはそのまま残します。(上の例では、4です。)両方に共通のデータで参照リストのようにデータが重複しているときは、未完成リストの方に重複している分だけ行を挿入し、上のデータをコピーします。(上の例では、3と8です。)この処理を例えば、それぞれのA列を比較し、お互い共通していないデータ行をそれぞれのリスト上で不可視にし、そのあと、参照リストのA列のデータを参考に重複してるデータを見つけたら、未完成リストの方に重複している分だけ自動に行を挿入し、上のデータをコピーして、参照リストと未完成リストの共通のデータを同じならびにしたいのです。(このあと、参照リストのB,C,Dのデータを未完成リストにコピーするので、未完成リストにしかないA列のデータは、不可視にしておいて、B,C,Dのデータをコピーするときに行がずれないようにしたいのです。) 以上(1)、(2)の処理を自動にさせるためのVBAが分かる方がいらっしゃいましたら、是非ご教授お願いいたします。

専門家に質問してみよう