Excel VBA シートコピー書式でシートを別シートやブックに複製する方法

 

Excel VBA  シートコピー書式そのままは、既存のシートを別のシートや別のブックにコピーする際に、シート内のデータや書式(フォーマット)をそのまま保った状態で複製する操作です。レイアウトやデザインが崩れることなくシートをコピーできます。具体的な使い方や、注意点やサンプルコードを紹介します。

 

日常業務でExcelを多用し、手動作業を減らしたいと考えている方へ
本サイト参考:Excel VBAで自動化するコードのベースを習得したい方におすすめの記事

 

Excel VBA シートコピー書式そのままの利用

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

・テンプレートシートの作成で、特定の書式設定やデザインを保持したシートを複数作成する。

・バックアップで、シートの内容を他のブックにバックアップしたいときに、書式を崩さずにコピーする。

使い方

1.コピー元シートの選択
コピーしたいシートを選択し、そのシートを別の位置にコピーします。

2.書式を維持してコピー
シートの書式をそのまま維持するために、通常のシートコピーと同じ方法でコピーします。

 

ポイント

・シートを別ブックにコピーする際、元のブックへのリンクが残る場合があります。その場合は、リンクを確認して修正する必要があります。

・同じブック内でコピーするとき、シート名が重複しないように注意してください。VBAが自動的に新しい名前を付けますが、目的に応じて手動で名前を変更することもできます。

 

Excel VBA シートコピー書式そのままのサンプルコード

基本的な文法やVBAの実践的な応用までを網羅的に学習できる方法は、ExcelVBAエキスパート資格の取得を目指すこと。学習を通して、より効率的に、着実に基礎を身につけることが可能です。資格取得すれば、スキルの証明にもなり、職場での評価アップにも繋がるため、勉強を進めるモチベーションにもなります。
本サイト参考:マクロ知識がないから「何から学べば良いのかわからない」という人におすすめの記事

Option Explicit

Sub CopySheetWithFormatting()
    Dim ws As Worksheet
    Dim newWs As Worksheet
    
    ' コピー元シートを指定
    Set ws = ThisWorkbook.Sheets("Sheet1")
    
    ' シートをコピーして新しいシートを作成
    ws.Copy After:=ThisWorkbook.Sheets(ThisWorkbook.Sheets.Count)
    
    ' コピーされた新しいシートを取得
    Set newWs = ThisWorkbook.Sheets(ThisWorkbook.Sheets.Count)
    
    ' 新しいシートの名前を変更
    newWs.Name = "CopiedSheet"
    
    ' メッセージを表示
    MsgBox "シートが書式を維持してコピーされました!"
End Sub

・ws.Copy After:=ThisWorkbook.Sheets(ThisWorkbook.Sheets.Count) で指定したシートを同じブック内にコピーします。コピー後、新しいシートが元のシートの書式やデータをそのまま引き継ぎます。

・newWs.Name = "CopiedSheet"でコピーされたシートの名前を変更しています。

・MsgBox 関数を使って、操作が完了したことをユーザーに知らせています。

Excel VBAのシートコピー機能を使うことで、書式を崩さずにシートを複製することが可能です。これはテンプレートを利用したり、書式が重要なデータを扱う場合に非常に有効です。注意点としては、リンクや名前の重複に気をつけてください。

Excel VBAで自動化するコードのベースを習得したい方におすすめ!

VBAエキスパート資格は、日常業務でExcelを多用し、手動作業を減らしたいと考えている方には価値あるものです。

ExcelVBAエキスパートベーシック
仕事の効率をあげるためにExcelVBAを利用する人が対象の問題集です。


ExcelVBAエキスパートスタンダード

ExcelVBAの開発を仕事にする人が対象の問題集です。

 

Excel  VBA エキスパート資格について知りたい方は、下記「Excel VBAスキルアップを目指すなら知っておきたいVBAエキスパート」をご確認ください。