エクセルマクロで2つのブックからデータを抽出する方法

このQ&Aのポイント
  • エクセルマクロを使って、AのブックとBのブックからデータを抽出する方法を教えてください。
  • Aのブックには電話番号が1600件、Bのブックには1600件の電話番号と住所などの情報があります。Aのブックにある電話番号のみから、Bのブックからデータを探し、データをコピーして別のブックに抽出したいです。
  • オフィスのバージョンは2003で、VBAの知識はほとんどありません。エクセルマクロを使って効率的にデータを抽出できる方法を教えてください。
回答を見る
  • ベストアンサー

エクセル マクロ 2つのブックの情報からデータを抜き出したい

エクセル マクロ 2つのブックの情報からデータを抜き出したい 初めて質問させていただきます。明日までに仕上げなければいけない仕事で大変困っています。 作業内容としてはAのブックには電話番号、Bのブックには電話番号と住所などその他の情報があります。 Aのブックにある電話番号のみからBのブックからデータを探し、 Bのブック横列にある電話番号を含むその他のデータをコピーして別ブックに抽出したいと 考えています。 Aのブックには電話番号が1600件、Bのブックには1600件の電話番号を含んだデータで 20万件ほどのデータがあります。シートは7つにわかれています。 利用しているオフィスのバージョンは2003になります。 VBAなどの知識がほとんど無く、正直困り果てています。 よろしくお願いいたします。

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

  • ベストアンサー
  • keithin
  • ベストアンサー率66% (5278/7940)
回答No.2

急いでいるのなら,自分では出来ないマクロなんかで時間を無駄にしてる間に,ご自分の手をちゃっちゃと動かして出来ることでやった方が早く結果を出せます。 手順: リストの1枚目のシートを開く(添付図左) 横に電話一覧のシートも開いておく(添付図右) (ウィンドウメニューの「整列」を使うこと) ここで,双方のシートの電話列の一番上のセルに「必ず同じ記載内容で」 電話番号 と記入しておく。 右のシートのA1をコピーし,左のB1セルに上書きで貼り付けるのが一番正解です。 左のシートでデータメニューのフィルタから「フィルタオプションの設定」を開始する  抽出先は 選択範囲内  リスト範囲 A1:C6などリストの全体範囲  検索条件範囲 [book2.xls]Sheet1!$A$1:$A$4 などのように右のデータ範囲を設定する。         手抜きして列:列指定すると間違えるので,必ずデータのある範囲を指定すること でOKすると,そのシートにあるリストに記載のある電話の行がその場で抽出されるので,普通に選んでコピーして集めるシートに貼り付ける。 次のシートでも同じ手順で同じ電話の行を絞り込み,そのままコピーして集めシートの続きに貼り付ける。 以下同文で7回手を動かせば,完成です。  

kikutu0429
質問者

お礼

上記の方法で無事に作業を終えることができました。正直徹夜も覚悟していただけに大変助かりました。 ありがとうございます!

その他の回答 (2)

回答No.3

VBAに慣れている人なら30分くらいで作れますが、 VBAの知識がほとんど無いのでしたら、ここで教えたところで エラー時の対応などができないから使えないでしょうね。 明日までだったら手作業でやった方が早いです。 今後も同じような作業がありそうだったら、VBAを勉強しておくと いいですよ。

  • hana-hana3
  • ベストアンサー率31% (4940/15541)
回答No.1

はっきり言って、アクセスに読み込ませて抽出するのがもっともベストで簡単かと思います。 もしくは、VlOOKUPを使って抽出したデータを結合させる。 または、作業列を使って電話番号の一致不一致をチェックして、オートフィルタで抽出してコピー。

kikutu0429
質問者

お礼

回答ありがとうございます。今回は別の方法で解決しましたが次回からはアクセスなども使ってみようと思います。助かりました。

関連するQ&A

  • ブックを開くマクロ

    データ管理というファイルの中にある データー(1)のファイルの中の データ表(1)というエクセルbookのあるマクロを実行すると 同じくデータ管理というファイルの中にある データー(2)のファイルの中の データ表(2)というbookを開き そのbookのsheet1のA1:B5をコピーして データ表(1)エクセルbookのsheet1のA1:B5に貼り付ける・・・ というVBAを組む事は出来ますでしょうか? 分かりにくくてすいません

  • エクセルで別のブックからデータを取得するマクロ

    困っています、わかる方教えてください。 現在エクセルのAというブックを開いているとします。 そのAにデスクトップにあるBからデータをコピーし、貼り付けたいのです。 流れとしては Aブックを起動 ↓ マクロ起動 ↓ ファイルを開くダイアログみたいな形で、Bのブックを選択 ↓ Bブックの(A1:B2)のデータを取得し、Aブックの(C1:D2)に貼り付け 以上です。 だれか教えてください。

  • エクセル2003でマクロで管理されたデータが本社から飛んできます。(本

    エクセル2003でマクロで管理されたデータが本社から飛んできます。(本社データブック)その中で欲しいデータだけを抽出するマクロ(支社データブック)を作っています。初心者なので、よくわからないのですが、本社データブックを改良できるようにしたいのですが、どうやったらよいのでしょうか。それができるのかどうかも分からないのですが。 例えば、本社データには A 3 B 3 C 3 D 3 とあるのですが、合計が入っていません。支社データは合計数とA3とB3の合計が欲しいのです。 よろしくお願いします。

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

    教えて下さい 複数のエクセルブックがあります(全て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とかあります ちなみに現状はファイルを一つ一つ開き、指定日付を検索し見つけだし その行をコピーペーストしています たくさんブックがあるので、これをしていると目がチカチカしてきてしまいます この作業がマクロでできると、すごく感激なのですが・・・ どなたか、お知恵・お力をおかしくださいませ

  • Excelの別々のブックから関数を呼び出したい

    簡単なVBAマクロなら今まで作ったことがあるものの 関数の引渡し等がさっぱりで、 且つプロシージャ???とかヘルプを見ても言葉の 障害で意味が理解しにくくて困ってます。(苦笑 なのでVBAは初心者そのものです。 (大昔C言語は多少かじったけど忘れましたね・・) 出来るのかどうか分かりませんが、 ブックAを操作中にブックBをオープンします。 それからAとBの各シートの情報をやりとりする、 こんな感じのプログラムを作りたいと思っています。 ブックAからブックBの関数(プロシージャ?)を 呼び出すことは出来るのでしょうか? 出来るのなら簡単なサンプルをお願いします。

  • 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データをコピーして加工する)ことにすら大苦戦しております。 なんとかお力を貸していただけないでしょうか? ご教示よろしくお願いいたします。

  • シートを串刺しで抽出したいのですがそれはマクロですか?

    こんにちは。 エクセルの串刺し集計ではなく、串刺し抽出のことでわからないので 教えて下さい。 ・同じブック内に顧客20件のデータが管理されています。 ・1シート毎が1顧客の単価帳になっています。 ・A1に顧客の名前(同じくシート名もこれと同じく顧客の  名前をつけています。) ・抽出したいのは顧客20件の各シートのA50:B53です。 同じブックの新規シートに「A1の顧客名」と(どれを抽出したか わからなくなってしまうから必要なのかな?と思います。) 20シート全ての「A50:B53」を抜き出すことは可能でしょうか? 抜き出したいセル番地は20シート一緒です。 それぞれのシートはA2からA49までの抽出しなくてもいいセルは、  不規則にだらだらと製品名や個々の単価が入力されています。 転職した会社でデータ管理がなされていなくてビックリしています。 とは言え私もマクロなどは経験がなく、なにをしたらできるのかが さっぱり分かりません。 でも確か前の会社ではできていたのに・・・? あれはアクセスだったのかなぁ? などという状態です。 VBAマクロの本を読みあさりましたが よくわかりませんでした。 とっかかりを教えていただければありがたいです。 よろしくお願いします。

  • エクセルVBA(マクロ内でマクロを選択する)

    いつも有難うございます。 表題の件でご教示ください。 エクセルVBAのマクロ内でマクロを選択して実行したいと考えてます。 調べたのですが、単にマクロ内で他のマクロを呼び出す方法はありましたが 「選択して」という点が見つからず、恐縮ですがお願いいたします。 具体的には以下のような内容です。 (1)基本となるデータが1~100まであるとする (2)サブルーチンとしてのマクロ群A~Gがあるとする (3)データ1に対してはマクロAを行い、データ2、3に対してはマクロBを行い・・・という形でそれぞれ対応させるマクロが違う (4)データ50~70は同じマクロを実行したい (5)このときに実行するマクロで ・対象のデータを選択させる(入力BOXで開始番号(50)と終了番号(70)を指定する) ・A~Gのどのマクロを実行させるか選択させる ・データ50~70に対して、選択したA~Gのいずれかのマクロを順次実行していく というものを作りたいと考えています。 全体的なイメージは完成しているのですが、マクロ群を選択させる方法がわかりません。 (マクロ群A~Gはすでに作って使用です) 何卒、宜しくお願いいたします。

  • エクセルの表データを用紙に貼り付けて印刷する方法

    Excel2003で表データ(1600件分くらいあります)を 請求書の書式に貼り付けて印刷したいのですが、 マクロやVBAの本を読んでもなかなか理解できません。 マクロを使って印刷まで行う方法をお教え下さい。 よろしくお願いします。 ■表データ A B  C  D  E    F 1 番号 名前 住所 電話番号 請求額 2 1  鈴木 東京 03-**  10000 3 2  田中 大阪 06-**  20000  ↓ これを請求書の書式に ■請求書  整理番号 ○○   住所 □□□   名前 □□  殿      請求額 □□□□

  • エクセルのマクロ

    こちらではいつもお世話になっております。 早速ですが、教えて頂きたい事がございます。 マクロ(VBA)でブックAのセルA1からA4、一つ飛んでC1からC3、また一つ飛んで・・・ という感じで、これをコピーし、ブックBのA1からA4、一つ飛んでC1からC3、また一つ飛んで・・ という感じで貼りつけ(数値のみ)をしたいのですが、ブックAでコピーしたいセルが選択されないよう で、数値のコピーを出来ません。 コピー出来たと思ってブックAを観てみると、違う数字が貼りつけされているセルがあります。 自分自身の知識の中で思いつく限り試しても、どうしても上手くいきません。 同じようなマクロをブックAとブックBで設定しているのですが、 他のモノは問題なくコピー&貼りつけ出来ています。 それだけに余計に頭がこんがらがっています。 わかりにくい質問かもしれませんが、ぜひお教え下さい。

専門家に質問してみよう