出力原義(ひな型)シートを同一ブック内にコピーして一件別請求書シート作成

1 ひな型から同じブック内に複数シート作成

 出力用のひな型シートには、あらかじめJ1セルを参照するVlookupを埋め込んである。削除してはまずい一覧シートやひな型シートは、シート名の冒頭に●をつけてある。

2 コード

Option Explicit

Sub ひな型シートを同一ブック内にコピーして一件別シート作成()
    Application.ScreenUpdating = False
    '初期化
    Call シート名が●で始まらないものを削除

    Dim iRow As Long
    With ThisWorkbook.Sheets("●一覧")
        'データ部分(見出し行以外)をループ
        For iRow = 2 To .Cells(.Rows.Count, "A").End(xlUp).Row
            'B列(発行判定列)が空欄でない場合(1が入っていたら)
            If .Range("B" & iRow) <> "" Then
                'ひな型シートをコピー
                Sheets("●ひな型").Copy after:=Sheets(Sheets.Count)
                'シート名を取引先名(C列)に変更
                ActiveSheet.Name = .Range("C" & iRow)
                'シートのJ1セル(ひな型のVLookupが検索値として参照するセル)に一覧シートの一連番号(A列)を入力
                ActiveSheet.Range("J1") = .Range("A" & iRow)
            End If
        Next
    End With
End Sub

Sub シート名が●で始まらないものを削除()
    Application.ScreenUpdating = False
    If MsgBox("削除前に上書き保存しておきますか", vbYesNo, "削除前の確認") = vbYes Then
        ThisWorkbook.Save
        MsgBox "シート削除前に、上書き保存完了"
    End If
    
    Dim ws As Worksheet
    For Each ws In Sheets
        If ws.Name Like "●*" Then
            '何もしない(削除しない)
        Else
            Application.DisplayAlerts = False
            ws.Delete
            Application.DisplayAlerts = True
        End If
    Next
    MsgBox "シート削除完了" & vbNewLine & "誤って削除した場合は保存せずに閉じてください。"
End Sub

3 見本

『たった1秒で仕事が片づくExcel自動化の教科書』補足記事

 の7章