ExcelVBA 既存シートを別ブックにコピーする方法|サンプルコード解説

 

Excel VBA 既存のワークシートを他のExcelブック(既存のブックや新しいブック)にコピーする操作。特定のシートだけを別のブックに転送し、データの共有や分析が容易になります。具体的な使い方や、注意点やサンプルコードを紹介します。

 

📌 「これ、自動化できたらラクなのに…」と思ったこと、ありませんか?
実はその作業、Excelマクロで簡単に自動化できるかもしれません。
「でもマクロって難しそう…」という方のために、完全初心者向けの入門記事をご用意しました!

👇実務で“そのまま使える”テンプレ付きで、コピペするだけ
初心者向けエクセルマクロの作り方を解説|コピペOK実務テンプレ付き

 

Excel VBAで別ブックにシートをコピーする用途とメリット

 

以下のようなシーンで利用されます。

 

・各部門から集まったデータをそれぞれのExcelファイルから取りまとめる際に、個々のシートを一つのファイルにコピーして統合する。

・標準テンプレートのシートをコピーし、他のファイルに組み込む

・特定のデータを他のブックにコピーして、元データを保護しながら分析を行う。

 

Excel VBA シートコピーの手順と注意点|別ブック

使い方

・コピー元シートの指定: コピーする元のシートを指定します。

・コピー先ブックの指定: 既存の別ブック、もしくは新しいブックにシートをコピーします。

 

ポイント

1.シート名の重複
コピー先に同じ名前のシートがすでに存在する場合、名前の重複エラーが発生するため、注意が必要です。

2.フォーマットとデータの整合性
コピー先のブックでフォーマットやデータの表示が変わる場合があるため、必要に応じて再確認します。

3.リンクと参照
コピーしたシート内で他のシートやファイルへのリンクがある場合、コピー先でも正しくリンクが維持されるか確認することが必要です。

 

Excel VBAで別ブックにシートをコピーするコード例

 

自分の実力を客観的にチェックしたい…。そんな方のために、自分に合ったスタート地点がわかる無料のExcelVBAベーシック選択問題集をご用意しました。

👉無料ExcelVBAベーシック選択問題138問

 

  1. Option Explicit
  2. Sub CopySheetToAnotherWorkbook()
  3.     Dim wsSource As Worksheet
  4.     Dim wbTarget As Workbook
  5.     Dim targetFilePath As String
  6.     
  7.     ' コピー元のシートを指定
  8.     Set wsSource = ThisWorkbook.Sheets("Sheet1")
  9.     
  10.     ' コピー先のブックを開く(既存のブックにコピーする場合)
  11.     targetFilePath = "C:\Users\User\Desktop\DataCsv\NewWorkbook.xlsx"
  12.     Set wbTarget = Workbooks.Open(targetFilePath)
  13.     
  14.     ' シートを別ブックにコピー
  15.     wsSource.Copy After:=wbTarget.Sheets(wbTarget.Sheets.Count)
  16.     
  17.     ' コピー先ブックを保存して閉じる
  18.     wbTarget.Save
  19.     wbTarget.Close
  20.     
  21.     ' 完了メッセージ
  22.     MsgBox "シートが別のブックにコピーされました!"
  23. End Sub

 

・Set wsSource = ThisWorkbook.Sheets("Sheet1"): コピー元となるシート(この例では「Sheet1」)を指定します。

・Workbooks.Open: コピー先の既存のブックを指定のファイルパスで開きます。ここで targetFilePath にはコピー先ブックのパスを指定します。

・wsSource.Copy After:=wbTarget.Sheets(wbTarget.Sheets.Count): シートをコピーします。コピー先のブックの最後にシートを追加しています。

・wbTarget.Save: コピー先のブックを保存します。

・wbTarget.Close: ブックを閉じて作業完了です。

 

Excel VBAで「シートコピー 別ブック」は、特定のシートを別のブックに転送するための便利な操作です。特に、複数のブックにまたがるデータの統合や、必要なシートの分離保存に役立ちます。シート名の重複やリンクの整合性に注意しながら使用することで、効率的にデータのコピーを行えます。

 

以下、業務に役立つマクロ10選を選びました。※ここをクリックで一覧表示します

 

Excel VBAエキスパートベーシックとスタンダード、どちらを選べばいいか判断が難しい…。そんな方のために、自分に合ったスタート地点がわかる無料のExcelVBAベーシック選択問題集を用意しました。

👉無料ExcelVBAベーシック選択問題138問