重要なお知らせ

「教えて! goo」は2025年9月17日(水)をもちまして、サービスを終了いたします。詳細はこちら>

電子書籍の厳選無料作品が豊富!

任意のブックのシートをコピーしたいのです。
たとえば、いつも使用するブック【AAA】があるとして、そこに後から開いたブック【BBB】のシート「あああ」をコピーしたいのです。
ここでの問題は、そのブックが常に【BBB】ではなということです。
例えはブック【CCC】のシート「あああ」であったり、ブック【DDD】のシート「あああ」であったり。
シート名は常に「あああ」なのですが、ブック名が毎回違うのです。
ブック【AAA】のマクロでなんとかできますでしょうか?

A 回答 (2件)

Sub Test()


  Dim FN As Variant
  Dim wb As Workbook
  'そこに後から開いたブック【BBB】
  'ダイアログで任意のブックを選択してください。
  FN = Application.GetOpenFilename(Title:="ファイル名を選択して下さい")
  If FN = False Then Exit Sub
  Set wb = Workbooks.Open(FN)
  'アクティブシートの右隣にコピー
  wb.Sheets("あああ").Copy After:=ThisWorkbook.ActiveSheet
End Sub
    • good
    • 0
この回答へのお礼

思ったとおりになりました。
すごいです。
ありがとうございます。

お礼日時:2012/05/24 16:55

以下のロジックで、できると思います(未検証)



1.開きたいブックの名前(仮に【XXX】とする)を取得する。
 (Application.GetOpenFilenameを使うのが一般的ですね)
2.ブック【XXX】を開く。
 →このときにブック【XXX】がActiveになります。
3.ワークシート「あああ」(と指定するだけで、ブック【XXX】のワークシート「あああ」が
選択されます)のCopyメソッドを使い、ワークシート【AAA】の任意のシートの後(または前)に
コピーする。

この回答への補足

うまくいきません。
私のレベルの低いせいです。
すみません。

補足日時:2012/05/24 13:24
    • good
    • 0

お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!