ボタンクリックで ワークシートを連続コピー・複製する方法【Excelマクロ/VBA】

当ページのリンクには広告が含まれています。

スポンサーリンク

エクセルVBAを使って、

ワークシートを連続コピー・複製する方法 を解説します

クリックしてジャンプ

イメージ動画(音声はありません)

スポンサーリンク

サンプルダウンロード

説明に使用しているエクセルファイルです

下図のような表示が出た場合は、以下の手順でマクロを有効にできます

  1. 一度、エクセルを閉じる
  2. ダウンロードしたエクセルファイルを「右クリック」
  3. 「プロパティ」を選択
  4. 「全般」タブのセキュリティの「許可する」に
  5. 「適用」ボタンをクリック
  6. 「OK」ボタンをクリック

スポンサーリンク

VBAコード

Sub シート連続コピー()

    'コピーするシート名
    Dim シート名 As String
        シート名 = ThisWorkbook.Worksheets("複製ボタン").Range("F10").Value
        
    'コピーするシートがあるかチェック
    Dim ws As Worksheet
    Dim flag As Boolean
    For Each ws In Worksheets
        If ws.Name = シート名 Then flag = True
    Next ws
    
    'コピーするシートが存在すればコピー実行
    If flag = True Then
        '繰り返し用
        Dim i As Long
        'コピーする枚数
        Dim j As Long
            j = Range("F11").Value

        For i = 1 To j
            '新しいエクセルファイルの最後にシートをコピーする
            ThisWorkbook.Worksheets(シート名).Copy _
            After:=ThisWorkbook.Worksheets(ThisWorkbook.Worksheets.Count)
    
            'シート名は連番をセット
            ActiveSheet.Name = i
        Next
        
    'コピーするシートが無ければメッセージ
    Else
        MsgBox シート名 & " シートがありません"
    End If
        
End Sub

スポンサーリンク

説明

「複製ボタン」シート の 「F10」セル で コピー(複製)する シートを指定

「複製ボタン」シート の 「F11」セル で コピー(複製)する 枚数を指定

指定したシートが無い場合はメッセージを表示

注意

上記コードは、連番のシート名でコピー(複製)されますが、コピー時にすでに同じシート名(「1」とか「2」とか)が存在するとエラーとなります。

スポンサーリンク

クリックしてジャンプ