• ベストアンサー
※ ChatGPTを利用し、要約された質問です(原文:【Excel】2つのBook間のマクロ)

【Excel】2つのBook間のマクロ

このQ&Aのポイント
  • Excel2003を使用して、BookAのSheet1とSheet2の範囲をそれぞれBookBのSheet1とSheet2に値のみコピーするマクロの作成方法について教えてください。
  • マクロのコード例として、Sheet1を値のみコピーするコードを示しました。Sheet2のコードはどのように続けて書けば良いですか?また、BookAとBookBのどちら側にコードを書くべきですか?
  • マクロの実行により、Excel2003のBookAのSheet1とSheet2の範囲をそれぞれBookBのSheet1とSheet2に値のみコピーする方法を教えてください。また、コードはどのBookに書くべきですか?

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

  • ベストアンサー
  • driverII
  • ベストアンサー率27% (248/913)
回答No.3

Workbooks("A.xls") などとすればいくようですね。 この点については失礼しました。 こちらでは可能なことを検証しました。

rx-z5815
質問者

お礼

再度の回答ありがとうございます。 おかげさまで、問題なく処理できるようになりました。

その他の回答 (2)

  • 446kun
  • ベストアンサー率8% (2/24)
回答No.2

エクセルでのマクロプログラミングの場合、一番簡単な方法はマクロの記録を初めて、実際の作業をしてみると自動的にマクロを作らせることです。 「ツール」の「マクロ」から「新しいマクロの記録」かツールバーの「マクロ記録」を押して始めて下さい。 作業動作が終わってから「記録終了」を押して標準モジュールを見ると、そこにマクロが作成されていますから、それを参考にするのが一番いいと思います。

rx-z5815
質問者

お礼

回答ありがとうございます。 「新しいマクロの記録」は今までにも使用したことはあり、これでできたコードに少し手を加えて、作成したマクロもあります。 以前、別件でマクロに関する質問をした際、「新しいマクロの記録」でできたコードの中には、通常はあまり使用しない関数があったり、不要な部分があったりすると回答をいただいたことがあったので、「新しいマクロの記録」を使用せずに、コードを書いた場合はどのようになるのかを知りたくて、質問させていただきました。

  • driverII
  • ベストアンサー率27% (248/913)
回答No.1

同時に開いているワークブックが 2 つだけなら、 Workbooks(1).Activate で、A.xls へ切り替わります。 コピー後、Workbooks(2).Activate で、B.xls へ切り替えればできると思いますが、できないようなら コピー後、Workbooks(2).Sheets(1).Range("A1").PasteSpesial … でできるのではないかと思います。 コピー先がBなので、通常Bにマクロを残したくはないのではないかと思います。このときはAです。またどちらでも良い場合ならAでかまわないのでAです。

rx-z5815
質問者

お礼

回答ありがとうございます。 >同時に開いているワークブックが 2 つだけなら、 Workbooks(1).Activate で、A.xls へ切り替わります。 これで、コードを書いて試してみましたが、A.xls へ切り替わっていないようで、(2)の処理のSheet2を選択することができずにエラーが出てしまいました。 「同時に開いているワークブックが2つだけなら」という条件付きのようですが、BookAそのものを指定するコードはどのように書いたらいいのでしょうか?もしよろしければ、教えていただけると助かります。

関連するQ&A