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

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

こういった用途は多いはずだけど、ちょうど良いマクロのサンプルがなかったので作成。

selection等を使わず、workbookを握って作成するので、おかしなバグも少ないと思う。

もう少しパラメータ化して汎用関数(メソッド)化しても良いかも。

—–

‘自分自身(ワークシート)を、別ワークブックにコピー
Sub CopyToNWorkbook()

‘一時保存用
Dim tmpWb As Workbook

‘アラート抑制
Application.DisplayAlerts = False
 
‘新規ワークブックを作成し、自分自身をコピー
Set tmpWb = Workbooks.Add
Call Me.Copy(tmpWb.Sheets(1))

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

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

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

End Sub

コメント

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