【EXCEL VBA】ワークシート(自分自身)を、新規ワークブックにコピーするサンプル2

VBA・Officeカテゴリを表すパンダのイラスト VBA・Office

前回のサンプルを改良し、より安全にワークシートのデータを新規ワークブックへ値コピーするExcel VBAコードです。

シート全体のコピーペーストではなく、オブジェクトを明示的に変数へ格納し、値のみを選択してコピーすることで予期せぬエラーや不要な数式・書式の持ち越しを防ぎます。

前提条件

  • 実行するExcelファイルが一度以上保存されており、ThisWorkbook.Pathが取得できる状態であること。
  • マクロ有効ブック(.xlsm)として保存されていること。

サンプルコード

Sub CopyToNWorkbook2()
    Dim srcWb As Workbook
    Dim dstWb As Workbook
    Dim srcWs As Worksheet
    Dim dstWs As Worksheet
    Dim srcR As Range
    Dim dstR As Range
    
    ' アラート抑制
    Application.DisplayAlerts = False
    
    ' コピー元(実行中のシート)の設定と範囲指定
    Set srcWb = ThisWorkbook
    Set srcWs = ActiveSheet ' または Me
    Set srcR = srcWs.Range("A:G") ' 必要に応じてコピー範囲を変更
    
    ' 新規ワークブックを作成し、値として貼り付け
    Set dstWb = Workbooks.Add
    Set dstWs = dstWb.Worksheets(1)
    Set dstR = dstWs.Range("A1")
    
    srcR.Copy
    dstR.PasteSpecial xlPasteValues
    Application.CutCopyMode = False
    
    ' シート名をコピー元と同じに変更
    dstWs.Name = srcWs.Name
    
    ' 新規ワークブックで自動作成される不要なシートを削除
    Dim ws As Worksheet
    For Each ws In dstWb.Sheets
        If ws.Name <> dstWs.Name Then
            ws.Delete
        End If
    Next ws
    
    ' コピーした新規ワークブックを名前を付けて保存
    dstWb.SaveAs ThisWorkbook.Path & "\test_" & srcWs.Name & ".xlsx"
    
    ' 後処理
    dstWb.Close SaveChanges:=False
    Application.DisplayAlerts = True
    
    MsgBox "保存が完了しました。", vbInformation
End Sub

コードのポイント

  • 値のみのコピー: PasteSpecial xlPasteValues を利用することで、元のセルに含まれる数式や条件付き書式を除外し、値のみを安全に新しいブックへ移行できます。
  • シート名の一致: 新規作成したブックの1枚目のシート名を、コピー元シート名に変更しています。
  • 保存先: 実行中のマクロファイルと同じフォルダに test_シート名.xlsx という名前で保存されます。

この記事の更新履歴

この記事は、生成AIを活用した自動レビュー・更新フローにより内容を見直し、必要な修正を反映しています。

2026年9月12日

  • 変更blockquoteタグによるコード表記を、見やすいMarkdownのコードブロックに変更しました。
  • 追加マクロの前提条件、実行手順、およびエラー防止のための解説を追加しました。

文書情報

記事タイトル
【EXCEL VBA】ワークシート(自分自身)を、新規ワークブックにコピーするサンプル2
作成日
更新日
Source URL
https://papanda925.com/?p=445

ライセンス: 本記事のうち、当サイトが権利を有する本文・自作図表は、特記なき限り CC BY 4.0 で利用できます。生成AIを活用して作成・編集した内容を含みます。コードについて、別途ライセンス表示またはリンク先GitHubリポジトリのライセンスがある場合は、その条件を優先します。引用・第三者資料・画像・商標等は本ライセンスの対象外です。 利用ポリシー

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