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

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

前回のサンプルから、少し改良

前回のやりかたは横着しすぎていた。

今回は、よりプログラマ好み(きっちりとコピー範囲やコピー方法をしている)と思う。

シートのコピーペーストよりも、ワークブック、ワークシート、Range をきちんと握って値コピーをする方が

エラーがすくないだろうし。

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 = Me
Set srcR = srcWs.Range("A:G") ‘範囲指定
srcR.Copy

Set dstWb = Workbooks.Add
Set dstWs = dstWb.Worksheets(1)
Set dstR = dstWs.Range("A1")
dstR.PasteSpecial xlPasteValues  ‘値コピー

dstWs.Name = srcWs.Name  ‘シート名を変更

‘新規ワークブックで自動的に作成されるシートを削除
Dim ws As Worksheet
For Each ws In dstWb.Sheets
    If ((ws.Name = "Sheet1") Or _
        (ws.Name = "Sheet2") Or _
        (ws.Name = "Sheet3")) Then
        ws.Delete
    End If
Next ws

‘コピーした新規ワークブックを、名前を付けて保存
dstWb.SaveAs ThisWorkbook.Path & "\test_" & Me.Name

‘後処理
dstWb.Close
Application.DisplayAlerts = True

End Sub

文書情報

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

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

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