Excel VBA 特定シートをブックの末尾にコピーする方法|サンプル付き

 

Excel VBA  特定のシートを現在のブックの最後にコピーする操作。複数のシートを扱う際に、新しくコピーしたシートをブックの末尾に追加して整理するのに便利です。具体的な使い方や、注意点やサンプルコードを紹介します。

 

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

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

 

Excel VBAでシートを末尾にコピーする用途とメリット

 

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

 

・毎月のデータを記録するため、月ごとのシートをコピーし、末尾に追加

・複数のシートがある場合に、元のシートを保護しながら、その複製を末尾に追加して編集を行う。

・作成中のレポートのシートをコピーして末尾に保存し、過去のシートと区別する。

シートを最後にコピーする方法と注意点|VBA手順ガイド

使い方

・コピー元のシートを選択し、そのシートをブックの末尾にコピーします。

 

ポイント

・シート名の重複
シート名が重複する場合、自動的に「Sheet1(2)」などに変更されるため、必要に応じて名前を変更してください。

・リンク切れ
コピーするシート内に他のシートやファイルへのリンクが含まれている場合、リンクが正しく機能しているか確認してください。

 

Excel VBA|シートを末尾にコピーするコード例と解説

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

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

  1. Option Explicit
  2. Sub CopySheetToEnd()
  3.     Dim wsCopy As Worksheet
  4.     Dim wb As Workbook
  5.     
  6.     ' コピー元のシートを指定
  7.     Set wsCopy = ThisWorkbook.Sheets("Sheet1")
  8.     Set wb = ThisWorkbook
  9.     
  10.     ' シートを末尾にコピー
  11.     wsCopy.Copy After:=wb.Sheets(wb.Sheets.Count)
  12.     
  13.     ' 完了メッセージ
  14.     MsgBox "シートが末尾にコピーされました!"
  15. End Sub

 

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

2.wsCopy.Copy After:=wb.Sheets(wb.Sheets.Count)
現在のブック (`ThisWorkbook`) の末尾にシートをコピーします。`wb.Sheets.Count` はシートの総数を取得し、末尾を指定しています。

3.MsgBox
コピー完了後に確認メッセージを表示します。

 

Excel VBAの「シートコピー 末尾」は、データ整理やシートの複製に便利です。特に、定期的に同じ形式のシートを扱う場合や、データの順序を維持したい場合に役立ちます。シート名の重複やリンクに注意しながら、効率的にシートを管理できます。

 

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

 

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

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