ワークシート(自分自身)を、新規ワークブックにコピーするサンプル
こういった用途は多いはずだけど、ちょうど良いマクロのサンプルがなかったので作成。
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 = TrueEnd Sub
コメント