• ベストアンサー

シートをコピーするマクロ

エクセルファイルを二つ開いているとします。 現在のアクティブシートを、もうひとつのファイルの最後のシートの後ろにコピーするマクロを教えてもらいたいのですが。 もうひとつのファイル名はそのつど変えることなく、汎用性がもてれば助かります。 以上、よろしくお願いいたします。

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

  • ベストアンサー
  • zap35
  • ベストアンサー率44% (1383/3079)
回答No.2

>エクセルファイルを二つ開いているとします が前提であれば下記マクロでよいでしょう。でも「汎用的」に作るとなれば、Bookが三つ以上開いている場合も考えなければなりません。その時はどのシートに複写するのでしょうか。 汎用性が必要ならもう少し条件を明示しないと難しいです。サンプルをヒントに手を入れてみてください。 Sub Macro1() Dim trgBK As String, k  If Workbooks.Count = 2 Then   If Workbooks(1).Name = ActiveWorkbook.Name Then    trgBK = Workbooks(2).Name   Else    trgBK = Workbooks(1).Name   End If   ActiveSheet.Copy _ After:=Workbooks(trgBK).Sheets(Workbooks(trgBK).Worksheets.Count)  Else   k = MsgBox("開いているBOOKが2つではありません", vbOKOnly + vbCritical)  End If End Sub

pyunimo
質問者

お礼

有難うございます。 実行してみましたが、ブック2つなのに、「BOOKが2つではありません」が表示され、コピーは行われませんでした。 また、「汎用性」というのは、対象ブック名をそのつど明記する必要がないという点についてのみのことです。 実行する時は常にブック2つの状態で行います。

その他の回答 (4)

  • zap35
  • ベストアンサー率44% (1383/3079)
回答No.5

#02です すみませんです。閉じ括弧”)”をNameの後ろにつけてください。

pyunimo
質問者

お礼

わかりました。 個人用マクロブックがカウントされていました。 Macro1を修正して再試行したら、成功してます。 いろいろと有難うございました。

  • zap35
  • ベストアンサー率44% (1383/3079)
回答No.4

#02です。そうですか、変ですね。  If Workbooks.Count = 2 Then はかなり確実な確認方法なのですが… では、エラーにあるとき下記マクロを実行してみてください。お手数ですがその結果を教えてください SUB Macro2()  MSGBOX("開いているWorkbook数=" & Workbooks.Count)  MSGBOX("Workbook(1)=" & Workbooks(1).Name  MSGBOX("Workbook(2)=" & Workbooks(2).Name  MSGBOX("Workbook(3)=" & Workbooks(3).Name  MSGBOX("Workbook(4)=" & Workbooks(4).Name End Sub 途中でエラーになっても構いません。想像ではXLSTARTにEXCEL起動時に自動で開くBOOKがあるのかな? と思います。

pyunimo
質問者

お礼

有難うございます。 Macro2をEditerに貼り付けただけで、下の4行が赤色になってしまいます。

  • ctrlzr
  • ベストアンサー率29% (18/62)
回答No.3

1は、もうひとつのファイルの最後のシートにコピってませんでした。2の方の回答でOKです。

  • ctrlzr
  • ベストアンサー率29% (18/62)
回答No.1

Module1に以下のソースを丸コピしてください -------------------------------------------- Option Explicit Public Sub copysheet() Dim bk As Workbook Dim sh As Worksheet Set bk = ActiveWorkbook Set sh = bk.ActiveSheet sh.copy after:=bk.Worksheets(bk.Worksheets.Count) End Sub

pyunimo
質問者

お礼

有難うございます。 同じブック内にコピーされてしまいます。

関連するQ&A