- 公開日:
エクセルからエクセルの差し込み印刷をマクロで行う方法
この記事では、エクセルからエクセルの差し込み印刷をマクロで行う方法をご紹介します。
差し込み印刷は、特定のデータを元にして複数の文書を一括で作成できるため大変効率的です。
具体的なコード例もご紹介していますので、マクロ初心者の方もすぐ実践できる内容です。
Excelを使った日付選択のマクロを無料でダウンロード!
Excelでカレンダーから日付を入力できるマクロを無料でダウンロードできます。コードを変更すれば、カレンダーの背景色や、今日の日付の色を変更したりとカスタマイズすることも可能です。
開発タブを表示する
マクロで差し込み印刷をするとき、「開発」タブを使用します。

上記の画像のような「開発」タブが表示されていない場合は、設定をして表示させましょう。
詳細は、以下の記事を参考にしてください。
エクセルで差し込み印刷を行うコード
エクセルで差し込み印刷を行うコードを下記に記載するので、コピーして使用してください。
Sub 差し込み印刷()
Dim s As Variant
Dim Serialnumber As Long
With Sheet1
'差し込みたい列の選択
For Each s In .Range(.Cells(2, 1), .Cells(.Rows.Count, 1).End(xlUp))
Serialnumber = Serialnumber + 1
With Sheet2
.Range("B1") = Serialnumber
.Range("B4") = s.Value
'印刷する
.PrintOut
End With
Next s
End With
End Sub
詳しい方法は、下記「エクセルからエクセルの差し込み印刷をマクロで行う方法」セクションでご紹介しています。
このVBAコードを使用すると、リストから差し込みされ連続印刷されます。
エクセルからエクセルの差し込み印刷をマクロで行う方法
エクセルからエクセルの差し込み印刷をマクロで行う方法をご説明します。住所録の情報を12枚のシートに分けて連続印刷したい場合を例にご説明します。

上記画像のリストの赤枠の項目(例:氏名)を別シートのフォームに上から順に反映させ、12名分のシートを連続印刷したい場合を例にご説明します。

別シート(例:Sheet1)に、上の画像のようなフォームを準備します。赤枠の箇所が、マクロで抽出した情報(例:「住所録」シートの氏名、連番)を反映させたい箇所です。マクロを使えば、シートを何枚も用意することなく情報を変えながら連続印刷することができます。

Excelファイルをマクロが有効なファイルとして保存します。ファイルタブを選択します。

①名前を付けて保存、②参照の順に選択します。

「名前を付けて保存」ダイアログボックスが表示されました。①ファイルの保存場所(例:デスクトップ)を選択し、②任意のファイル名(例:カタログ_送付リスト)を入力します。③ファイルの種類で「Excel マクロ有効ブック」を選択し、④保存ボタンを押します。

VBAでコードを登録します。①開発タブ、②Visual Basicの順に選択します。

「Microsoft Visual Basic for Applications」が表示されました。①挿入タブ、②標準モジュールの順に選択します。

「標準モジュール」が表示されました。上記「エクセルで差し込み印刷を行うコード」のコードをコピーし貼り付けます。

コード内に差し込みたい値があるセルの開始位置を入力します。上記の画像下段の例は「Sheet1(例:「住所録」シート)の2行目、1列目(A列)のセルから差し込む」という意味になります。「Cells(Rows.Count, 1).End(xlUp)」はA列の最終行まで処理するという意味になります。

差し込むセルの値を表示させたい場所を入力しましょう。上記の画像下段の例は、連番はSheet2のB1(.Range("B1") = Serialnumber)、氏名はSheet2のB4(.Range("B4") = s.Value)に表示するという設定になります。

①ファイルタブ、②上書き保存の順に選択します。

VBAの設定が終わったので、編集画面に戻ります。①開発タブ、②マクロの順に選択します。

「マクロ」ダイアログボックスが表示されました。①作成したマクロ(例:差し込み印刷)、②マクロの保存先で作業中のファイル(例:カタログ_送付リスト)の順に選択します。③実行ボタンを押すと印刷が開始されます。

実際に印刷して確認してみましょう。指定した場所に差し込み印刷することができました。