出力原義(ひな型)シートを同一ブック内にコピーして一件別請求書シート作成
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章