• ベストアンサー

他ブックからのデータ検索・コピー(VBA)

【Book2】(Sheet2)L1に「12-1」を入力 ↓ 【Book1】(Sheet1)で「12-1」をM列、T列、AA列から検索→M4に「12-1」があった ↓ 【Book1】(Sheet1)N4:S4のデータを【Book2】(Sheet2)M1:R1にコピー 各ブックは同一ファイルに保存 検索する文字列の重複はなし 現在は関数≪VLOOKUP≫を使い上記を行っています。 マクロを使った方がスムーズに処理できるのでしょうか。 マクロを使う場合はどのような方法が良いのでしょうか。 データ数は1000行程度、各行の25個のセルに≪VLOOKUP≫関数が入っています。

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

  • ベストアンサー
  • hallo-2007
  • ベストアンサー率41% (888/2115)
回答No.2

>マクロを使う場合はどのような方法が良いのでしょうか。 データには、一行目には項目(フィールド名)が入っていて 2行目からデータが入っているものとします。 エクセルの機能にある フィルターオプションの機能を使えば 一挙に、希望したデータが抽出できます。 http://www.eurus.dti.ne.jp/yoneyama/Excel/filter3.htm を参考に勉強してみてください。 マクロについても最後に説明されています。 エクセル2007以上では リボンのデータ フィルター=>詳細設定で フィルターオプションの設定に入ります。

その他の回答 (1)

回答No.1

関数式≪VLOOKUP≫とマクロの基本的な事項 ・関数式は自動計算&BookのOpen時に全関数式を実行 →データ変更に対し即時対応&関数式の数が多いとBookのOpenに時間がかかる。 また、Book間の対応は、関係BookがOpenされている必要がある。 ・マクロは半自動計算&BookのOpen時には実行されない。(但し、BookOpenイベントを使用するマクロも可能) →データ変更に対しユーザーの指示によって対応&BookのOpenに時間がかからない。 また、Book間の対応において、関係Bookを自動Openし自動Closeできる。 データ数は1000行程度、各行の25個のセルに関数が入っている場合、結構な時間がかかっていると思います。 関数式かマクロかという問題は、使用目的によって選択すべきと考えます。 【Book2】(Sheet2)L1に「12-1」を入力 ↓ 【Book1】(Sheet1)で「12-1」をM列、T列、AA列から検索→M4に「12-1」があった ↓ 【Book1】(Sheet1)N4:S4のデータを【Book2】(Sheet2)M1:R1にコピー というふうに、やりたい事の論理がしっかりしているならばマクロが適していると思います。 マクロをしっかり勉強して下さい。 (データはコピー&貼り付けではなく、データ取得&データ書込と考える方がベターと思います。)

関連するQ&A