• ベストアンサー

EXCEL VBA テーブル間のコピー

お世話になります。 VBA初心者です。 Excelで、元データであるSheet1にあるテーブルのB列をSheet2にあるテーブルのA列に転記したいと思います。このとき、Sheet2のテーブルにはデータが入っており、そのデータと重複するものを除外したものだけをSheet2テーブルの続きから入力させるにはどうしたらよいでしょうか? なにとぞご教授のほど、お願いいたします。

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

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

入れ忘れてました。 最後に Set Sh2 = Nothing Set Sh1 = Nothing を追加しておいてください。

Sachi_Mitsu
質問者

お礼

ありがとうございます!!!バッチリ機能しました。 本当に困っていたので助かりました。

その他の回答 (2)

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

データ例 Sheet1 A1:B8 区分 属性 a y b x c z s x d u f z a v Sheet2 A1:B4 区分 属性 a y b x c z -- ありきたりのコードだが、 標準モジュールに Sub test01() Set sh1 = Worksheets("Sheet1") Set sh2 = Worksheets("Sheet2") lr = sh1.Range("B100000").End(xlUp).Row 'MsgBox lr For i = 1 To lr x = sh1.Cells(i, "B") y = sh1.Cells(i, "C") If WorksheetFunction.CountIf(sh2.Range("A:A"), x) = 0 Then sh2.Range("A100000").End(xlUp).Offset(1, 0) = x sh2.Range("A100000").End(xlUp).Offset(0, 1) = y End If Next i End Sub 実行結果 Sheet2 区分 属性 a y b x c z s x d u f z ーーー 質問の表現に小生なら異議あり ・テーブルというのは、エクセル独自の仕組みがある。 表という意味で、俗語的な使いはするな。 ーー ・質問表題は、 Sheet1のB列セルデータのうちで、シート2のA列データになければ、追加する。 と表現する方がよかろう. さすれば画像は添付せずとも判るだろう。 ーー またコピーというより、データの代入(Let)でよいのではないか。 この表現の結果の差は分かるかな?

Sachi_Mitsu
質問者

お礼

ご回答いただきありがとうございます。 なお、ご指摘いただきました点について。 >テーブルというのは、エクセル独自の仕組みがある。 表という意味で、俗語的な使いはするな ー こちらは俗語的に「テーブル」という単語を使用したわけではなく、エクセルにおけるテーブル書式、表の意味で質問させていただきました。 >質問表題は、 Sheet1のB列セルデータのうちで、シート2のA列データになければ、追加する。 と表現する方がよかろう. ーわかりました。今後の参考にさせていただきます。 >またコピーというより、データの代入(Let)でよいのではないか。 ー今後質問する際の参考にさせていただきます。

  • kkkkkm
  • ベストアンサー率65% (1615/2454)
回答No.1

色々やり方はあると思いますが、単純な方法で Sub Test() Dim i As Long Dim FRange As Range Dim Sh1 As Worksheet, Sh2 As Worksheet Set Sh1 = Worksheets("Sheet1") Set Sh2 = Worksheets("Sheet2") For i = 1 To Sh1.Cells(Rows.Count, "B").End(xlUp).Row Set FRange = Sh2.Range(Sh2.Cells(1, "A"), Sh2.Cells(Rows.Count, "A").End(xlUp)). _ Find(Sh1.Cells(i, "B").Value, LookIn:=xlValues, LookAt:=xlWhole) If FRange Is Nothing Then Sh2.Cells(Rows.Count, "A").End(xlUp).Offset(1, 0).Value = _ Sh1.Cells(i, "B").Value End If Next End Sub

関連するQ&A

  • 急!!Excel VBA 転記マクロを教えて下さい

    Excel VBA超初心者です、 急ぎ作らなければならない資料があり、ご助力願います。 次の様な転記するアクションをコマンドボタンに設定したいです。 Sheet1の列A(先頭セルA2)に入力したデータを、 追加した(入力間違い等を除き、保存した)データ分だけ Sheet2の列B(先頭セルB3)の最終行から転記させていく。 列Aに入力したデータは、並び替えをするので (この分は、今回のVBAに含みません。入力・転記後、Sheet1で普通に並び替えをします。) 列Aと列Bのデータの順番が異なる。 以上です。 どうぞ宜しくお願いします。

  • 〔EXCEL VBA〕で「第1のシート」のデータを「第2のシート」に転

    〔EXCEL VBA〕で「第1のシート」のデータを「第2のシート」に転記する方法 EXCEL2003でデータが480行/65列ある第1のシート(データベース的)があります。 第1のシートの列にデータが入力されている場合のみ、第2シートの指定されたセルに検索した列の 表題と検索したデータを結合して転記したいのですが良い方法が分りません。 その際、各行毎に検索し空白列は第2のシ-トに転記せず左詰めにして転記したいのですが・・・・ 初心者に合せたご教示をお願いします。 また、Excel VBAの短期マスター法が御座いましたら合せて教示願います。 以上、宜しくお願い致します。

  • エクセルでデータを蓄積するVBA

    蔵書管理用の一覧表です。 エクセルでデータ入力用のフォームは作ることができたのですがシートに転記するVBAをどのように書けばよいのか分かりません。 データは次々に増えていきます。 A列には番号を入力せずに自動的に番号が増えていくようにしたい。 3番まで入力済みのあとは、自動で「4」と番号が付与されて、下の行に転記されるようにしたい。 VBA初心者です。よろしくお願いします。 A    B      C          D 番号 分類     図書名      冊数 1   文庫本    日本の歴史   3 2   週刊誌    新潮        1 3   月刊誌    月刊ゴルフ    1

  • 入力フォームをテーブルの真下に転記

    エクセルのVBAで入力フォームを作成して、入力フォームのテキストをシート2の、テーブルの見出しの次の行から転記される用にしたいのですが、最終行を取得すると見出しから一行飛ばして二行目に転記されてしまいます。 テーブルを作成した時に見出しの下に空欄のデータシートが自動で追加されてしまうからでしょうか? 何か対策はあるでしょうか? コードで提示して頂くと助かります。 入力フォームはシート1で開く 転記 シート2のA列から順に、連番生成(1〜)、テキストボックス1.2.3..... 宜しくお願いします

  • Excel VBA Find関数の使い方

    下記のようなマクロを作りたいと思います。 <シート名:元データ> B列(商品番号)がA列(ファイル名)に含まれていれば、 A列のファイル名をC列(チェック)に転記するものです。 <シート名:完成形> やりたいことの完成形がこちらのシートです。 詳しいデータは画像データを添付しました。 Findを使用するところまでは調べたのですが、VBA初心者のため シンプルな方法があれば教えてください。

  • Excel VBAで作成するにあたって、画像上部の元データを

    Excel VBAで作成するにあたって、画像上部の元データを 画像下部のように行列位の違いがあるような項目に データを抽出して転記するにはどうしたらよいでしょうか? 手順 ・支店ごとにデータを抽出し、シート名を付ける ・データを転記する VBA初心者で勉強中ですが大変困難です。 どなたか教えてください。よろしくおねがいいたします。

  • エクセルVBAで困ってます。

    エクセルVBAで困っています。 データ入力済みのシートが2つあります。 シート名を「Sheet1」「Sheet2」とします。 「Sheet1」のA列のデータが「Sheet2」のA列のデータと一致した時に それぞれのシートのセル番地を取得したいのですが出来ません。 教えて下さい。 データの並び順は「Sheet1」と「Sheet2」で異なります。

  • エクセルVBAでピボットテーブルを作成しています。

    エクセルVBAでピボットテーブルを作成しています。 作成まではできましたが、以下2つのVBAの組み方が分からないのでおしえてください。 【質問1】 ピボットテーブルの作成先を指定できるか? 例えば、予め準備したシートに作成することは可能でしょうか? VBAのどこを触ったら良いか分かりません。 【質問2】 作成されたピボットテーブルの列を、見出しの準備された別シートへ、それぞれ流し込むことはできるか? 例えば ピボットテーブルが以下のように作成されたとして、 A列  B列 購入額 総計 A社  1000 B社  2500 C社  800 予め用意した別シート(A~D列の見出しは固定)のB、C列にピボットのA、B列(最終行まで)をそれぞれ流し込みたいのです。 A列(コード) B列(購入額)  C列(総量)  D列(JANコード) 001      A社        1000      JAN1 002      B社        2500       JAN2 003      C社        800      JAN3 流し込んだ列を元にA、D列にはVLOOKをかける予定です。 何か良い案があれば是非、ご教授ください。

  • Excel VBAについて質問します。

    Excelのシート1のA列に 同じ番号や違う番号が入力されています。 A列には、この先番号が増えてくると思います。 A列の同じ番号が何個存在するかをカウントして数字で表示させたいです。 重複していない番号も1と数えていきたいです。 カウントした表示先は予めシート2に重複していない様にA列に存在しますので 同じ番号の横B列に何個存在するか個数を表示させる事はできませんでしょうか? VBAは初心者の為、お手数をおかけしますが宜しくお願いします。

  • Excel VBAで作成するにあたって、画像上部の元データを

    Excel VBAで作成するにあたって、画像上部の元データを 画像下部のように行列位の違いがあるような項目に データを抽出して転記するにはどうしたらよいでしょうか? 手順 ・支店ごとにデータを抽出し、シート名を付ける ・データを担当者ごとに1行に集約して転記する VBA初心者で勉強中ですが大変困難です。 どなたか教えてください。よろしくおねがいいたします。

専門家に質問してみよう