[ Excel-VBA ] 既存ブックのシートを新規ブックにコピーする(Workbooks.Add)

Pocket

ここでは、Excel-VBA において、既存ブックの複数シートを新規ブックにコピーするサンプルスクリプトを掲載しています。

スポンサーリンク

新規ブックに既存ブックのシートをコピーする

サンプルスクリプトは次の通りです。詳細はサンプル内のコメントを参照ください。


    ' 余計な確認ダイアログの出力を抑制
    Application.DisplayAlerts = False
    ' 画面の更新処理を停止
    Application.ScreenUpdating = False

    '新規ブックのファイルパスを設定
    Dim filePath As String
    filePath = "E:\パス\名前.xlsx"

    ' 新規ブックを作成する
    With Workbooks.Add

        ' 既存ブックから新規ブックへコピーするシートを配列で指定
        ' なお、新規ブックの先頭シートの前にコピーしている
        ThisWorkbook.Sheets(Array("シート名1", "シート名2")).Copy Before:=.Sheets(1)

        ' 新規作成したブックを保存する
        ' 拡張子が.xlsxの場合はxlOpenXMLWorkbook
        .SaveAs FileName:=filePath, FileFormat:=Excel.XlFileFormat.xlOpenXMLWorkbook

        ' 拡張子が.xlsの場合は、FileFormatに
        ' Excel.XlFileFormat.xlWorkbookNormal を指定する
        
        ' 新規作成したファイルを閉じる
        .Close
    End With

    Application.DisplayAlerts = True
    Application.ScreenUpdating = True

スポンサーリンク


Pocket

Leave a Comment

Your email address will not be published. Required fields are marked *