ブイルックアップを使って同じ書式に個別情報を代入しながら連続でシートを作成するマクロ


黄色マーカーの文書みたいに

会社名とか氏名とかだけ変えて、あとは同じ内容でいい時。
ブイルックアップ関数とマクロを組み合わせて

開始番号と

終了番号を指定して

連続でシートを作成するマクロ。

下準備


①個別情報が入ったリストを用意する

②それぞれの文書で個別に変更したい箇所に、ブイルックアップ関数を使って個別情報を飛ばす。
検索値は文書の欄外に設定する。
※ここでは、文書の欄外のF1(水色マーカー部分)を検索値とした。

③検索値を変更すると個別情報が入れ替わることを確認する。

コード

Sub ブイルック連続シート作成()
    Dim i As Long
    Dim start As Long
    Dim last As Long
    
    'シートコピー開始番号取得
    start = InputBox("最初の番号を入力してください")
    
    'シートコピー終了番号取得
    last = InputBox("最後の番号を入力してください")
    
        '繰り返し処理
        For i = start To last
        
            'アクティブシートを最後尾にコピー
            ActiveSheet.Copy after:=ActiveWorkbook.Sheets(ActiveWorkbook.Sheets.Count)
            
            '変数を代入
            'F1がブイルックアップの検索値の場合
            Range("F1") = i
            
            'シートの名前を変更
            'A5の値にしたい場合
            ActiveSheet.Name = Range("A5")
        Next i
    
    MsgBox "シートコピー完了"
    
End Sub

注意点

  • 検索値【F1】は自分が検索値として設定したセルに変更する。
  • 印刷したい文書と検索値は同じシートにする。
  • 印刷したいシートをアクティブにしてマクロをスタートする。
  • できたシートはブイルックアップされた状態なので、検索値を変更したり、リストを削除すると使えなくなる。
  • この後シートを分割する場合などは、値貼り付けをすること。