【VBA】別のブックにシートをコピーする方法

VBAを使うと、現在のシートを別のブックにコピーすることができます。
ここでは、既存ブックへのコピー新規ブックへのコピーについて解説します。


1. 現在のシートを新しいブックにコピーする

最もシンプルな方法は、ActiveSheet.Copyを単独で使用する方法です。
これを実行すると、現在のシートだけを含んだ新しいブックが作成されます。

Sub CopySheetToNewBook()
'現在のシートを新しいブックにコピー
ActiveSheet.Copy
End Sub

ポイント

  • コピー後、新しいブックが自動的に開かれます。
  • 新規ブックにはコピー元のシート名がそのまま使用されます。

2. 既存ブックにシートをコピーする

既存のブックにシートをコピーする場合は、コピー先のブックと位置を指定します。
たとえば、Book2.xlsxの最後にコピーする場合は次のように記述します。

Sub CopySheetToExistingBook()
'既存ブックを変数にセット
Dim wb As Workbook
Set wb = Workbooks("Book2.xlsx")

'現在のシートを Book2.xlsx の最後にコピー
ActiveSheet.Copy After:=wb.Sheets(wb.Sheets.Count)
End Sub

注意点

  • コピー先のブックが開いていないとエラーになります。
    必要に応じて Workbooks.Open "C:\Path\Book2.xlsx" を使って開いておきましょう。

3. コピー時にシート名を変更する

コピーしたシートの名前が既に存在するとエラーになります。
そのため、コピー直後にリネームするのが安全です。

Sub CopyAndRenameToBook()
Dim wb As Workbook
Set wb = Workbooks("Book2.xlsx")

'シートをコピー
ActiveSheet.Copy After:=wb.Sheets(wb.Sheets.Count)

'コピーしたシートをリネーム
wb.Sheets(wb.Sheets.Count).Name = "コピーシート"
End Sub

4. まとめ

  • ActiveSheet.Copyだけで新しいブックにコピー可能。
  • 既存ブックにコピーする場合は、Workbooks("ブック名")を指定。
  • コピー後に Name プロパティでシート名を変更するとエラー回避しやすい。

コメント

タイトルとURLをコピーしました