宛名ラベルや封筒の宛書き、案内状の名前部分だけを自動で変えて大量印刷したい、という場面は業務の中でよくあるのではないでしょうか。
「差し込み印刷」という言葉を聞くとWordの機能というイメージを持つ方も多いかもしれませんが、エクセル単体でも工夫次第で差し込み印刷と同等の連続印刷を実現することができます。
この記事では、エクセルで差し込み印刷をする(やり方・ラベル・封筒・連続印刷・VLOOKUPとの組み合わせ)方法について、初めての方でも迷わず実践できるよう丁寧に解説していきます。
VLOOKUP関数やマクロを活用した応用的な方法も含めてご紹介しますので、ぜひ参考にしてみてください。
【結論】エクセルで差し込み印刷を実現するには「VLOOKUP関数+印刷シート」の組み合わせか、Wordの差し込み印刷機能にエクセルデータを連携させる方法が最も効果的
それではまず、エクセルで差し込み印刷を行う方法の全体像と、目的別に選ぶべき手段の結論について解説していきます。
エクセルで差し込み印刷を実現するアプローチは、大きく3つに分かれます。
エクセルで差し込み印刷を行う3つのアプローチ
方法① エクセル単体でVLOOKUP関数を使う → データシートとレイアウトシートを分けて作成し、VLOOKUP関数で行番号を切り替えながら1件ずつ印刷する。手軽で導入しやすい。
方法② Wordの差し込み印刷機能にエクセルデータを連携させる → Wordで封筒・ラベル・レターなどのレイアウトを作り、エクセルの住所録を差し込み先として指定する。大量印刷や複雑なレイアウトに向いている。
方法③ エクセルのマクロ(VBA)で自動化する → VBAでループ処理を組み、複数件のデータを自動で切り替えながら連続印刷する。繰り返し使う業務に最も効率的。
どの方法を選ぶかは、印刷件数・レイアウトの複雑さ・作業の頻度によって変わります。
少数件数であればVLOOKUP関数の手動切り替え、大量印刷や繰り返し作業ならVBAまたはWord連携が効率的です。
以下のイメージ図は、エクセルのデータシートとVLOOKUP関数を使った印刷シートの基本構成を示しています。

差し込み印刷に必要なデータシートの作り方
エクセルで差し込み印刷を行う際には、まず印刷に使うデータを整理した「データシート」を作成することが最初のステップです。
データシートには、1行目に見出し(氏名・住所・郵便番号など)、2行目以降に各レコードのデータを入力します。
A列にNo(連番)を入れておくことで、後からVLOOKUP関数で行を指定して呼び出すことが簡単になります。
データはできる限りひとつのセルに複数の情報を詰め込まず、氏名・姓・名、住所・都道府県・市区町村のように分割して入力しておくと、レイアウトの自由度が上がります。
印刷シートの基本レイアウトを設計する
印刷シートは、実際に印刷される仕上がり通りのレイアウトを設計するシートです。
ページ設定(用紙サイズ・余白・印刷範囲)を先に決めておき、その中に氏名や住所などを表示するセルを配置します。
切り替え番号を入力するセル(例えばE1)をひとつ設けて、そこの値を変えるだけで全体の表示が自動更新される仕組みを作ることが基本設計のポイントです。
印刷シートのデータ表示セルにはすべてVLOOKUP関数を入力し、番号セル(E1)を参照することで、番号を変えるだけで対象データが自動で切り替わるようにします。
差し込み印刷で使えるデータの種類と注意点
差し込み印刷に使うデータシートに入力できる情報には特に制限はなく、氏名・住所・電話番号・メールアドレス・会社名・部署名など、業務で使うあらゆる情報を格納できます。
ただし、郵便番号は「0」から始まる場合があるため、セルの書式を「文字列」に設定してから入力することを忘れないようにしましょう。
また、氏名の後に「様」を自動でつけたい場合は、印刷シートのセルに「=VLOOKUP($E$1,データ!$A:$C,2,0)&” 様”」のように文字列を結合する数式を使うと便利です。
VLOOKUP関数を使った差し込み印刷の設定手順
続いては、VLOOKUP関数を使ってデータシートから情報を呼び出し、印刷シートに自動表示させる具体的な設定手順を確認していきます。
VLOOKUP関数の基本さえ理解できれば、差し込み印刷の仕組みを自分でカスタマイズできるようになります。
VLOOKUP関数の書き方と引数の意味
VLOOKUP関数は、指定した検索値をもとに表の中から対応する値を取り出す関数です。
差し込み印刷では、「番号セルの値(何件目か)」を検索値として使い、データシートから対応する氏名・住所などを取り出します。
VLOOKUP関数の書式
=VLOOKUP(検索値, 範囲, 列番号, 検索方法)
差し込み印刷での使用例
=VLOOKUP($E$1,データ!$A:$D,2,0)
→ 印刷シートのE1(番号)をキーに、データシートのA〜D列からB列(氏名)を取り出す
=VLOOKUP($E$1,データ!$A:$D,3,0)
→ 同様にC列(住所)を取り出す
=VLOOKUP($E$1,データ!$A:$D,4,0)
→ 同様にD列(電話番号)を取り出す
「$E$1」は絶対参照にしておくことで、数式をコピーしても常にE1を参照する
列番号は取り出したいデータが何列目にあるかを数値で指定します。
A列が1、B列が2、C列が3という数え方です。
検索方法は「0」または「FALSE」を指定することで完全一致検索になり、番号が完全に一致する行のデータだけを正確に取り出せます。
以下のイメージ図は、印刷シートにVLOOKUP関数を入力して氏名・住所を自動取得している状態を示しています。
Microsoft Excel — 印刷シートのVLOOKUP数式入力
挿入
数式
ページレイアウト
fx
=VLOOKUP($E$1,データ!$A:$D,2,0)
← 氏名を取り出す数式
データシート
⚡ E1の番号を変えるたびに郵便番号・住所・氏名がVLOOKUPで自動更新される
印刷番号を変えながら1件ずつ印刷する手順
VLOOKUP関数の設定が完了したら、あとは印刷番号セル(E1)の値を変えながら、1件ずつ印刷するだけです。
VLOOKUP方式での差し込み印刷の手順
① 印刷シートのE1に「1」を入力する
② 印刷プレビューで内容を確認する
③ Ctrl+P で印刷する
④ E1の値を「2」に変更する
⑤ 再度Ctrl+P で印刷する
⑥ 件数分だけ繰り返す
件数が少なければ手動での番号切り替えで十分対応できます。
一方で件数が多い場合は、後述するVBAによる自動化を検討することをおすすめします。
複数の差し込み項目を効率よく設定するコツ
差し込みたい項目が多い場合(氏名・住所・電話番号・会社名・担当者名など)は、VLOOKUP関数を各セルにひとつずつ設定する必要があります。
この作業を効率化するコツは、最初の数式を入力したら後はコピー&貼り付けを活用し、列番号の引数だけを修正する方法です。
また、XLOOKUP関数(Excel2019以降で使用可能)を使えば、VLOOKUPより柔軟に列を指定できるため、より複雑なデータ構造にも対応しやすくなります。
XLOOKUP関数での差し込み印刷(Excel2019以降)
=XLOOKUP($E$1,データ!$A:$A,データ!$B:$B)
→ データシートのA列でE1の値を検索し、B列の値を返す
=XLOOKUP($E$1,データ!$A:$A,データ!$C:$C)
→ 同様にC列の値を返す
VLOOKUPと異なり、参照する列を範囲指定で直感的に選べるため、列番号のカウントミスが起きにくい
ラベル・封筒への差し込み印刷とWordとの連携方法
続いては、宛名ラベルや封筒に差し込み印刷を行うための具体的な設定と、Wordの差し込み印刷機能にエクセルのデータを連携させる方法を確認していきます。
大量の宛名ラベルや封筒を印刷する場合は、Wordとエクセルを連携させる方法が最も効率的です。
Wordの差し込み印刷でエクセルデータを使う手順
Wordには「差し込み印刷」という専用機能が搭載されており、エクセルの住所録データをそのまま差し込み先として指定できます。
WordとエクセルデータでWordの差し込み印刷を使う手順
① Wordを開き「差し込み文書」タブをクリックする
② 「差し込み印刷の開始」→「レター」「封筒」「ラベル」から目的の形式を選ぶ
③ 「宛先の選択」→「既存のリストを使用」→ エクセルファイルを選択する
④ 使用するシートとデータ範囲を指定する
⑤ Wordの文書内の差し込みたい位置に「差し込みフィールドの挿入」で項目を配置する
⑥ 「結果のプレビュー」で内容を確認してから「完了と差し込み」→「ドキュメントの印刷」を実行する
この方法では、Wordのレイアウト機能とエクセルのデータ管理を組み合わせた本格的な差し込み印刷が実現できます。
封筒印刷の場合は「封筒」を選ぶことで封筒サイズに合わせたレイアウトが自動生成されます。
ラベル印刷の場合は「ラベル」を選んでラベル製品番号(ラベルメーカーの型番)を指定するだけで、ラベルの並びに合わせた複数件の配置も自動的に処理されます。
エクセル単体でのラベル印刷の設定方法
Wordを使わずにエクセルだけでラベル印刷を行いたい場合は、ラベルシートの印刷レイアウトに合わせてセル結合や列幅・行高を調整し、複数件を1ページに配置する方法を使います。
A4用紙に2列×5行のラベルが12枚印刷できる場合であれば、ページ内に12件分の印刷エリアを作り、それぞれのエリアにVLOOKUP関数でデータを引き込みます。
| 印刷方法 | 向いている場面 | 難易度 |
|---|---|---|
| VLOOKUP手動切り替え | 件数が少ない・単票形式の印刷 | ★☆☆(簡単) |
| Word差し込み印刷連携 | 封筒・ラベル・レター大量印刷 | ★★☆(中程度) |
| エクセル単体ラベル配置 | ラベルシートを直接エクセルで設計 | ★★☆(中程度) |
| VBAマクロ自動化 | 件数が多い・定期繰り返し作業 | ★★★(上級者向け) |
封筒印刷に必要な設定とポイント
エクセルで封筒の宛名を差し込み印刷する場合、封筒サイズに合わせたページ設定が最も重要なポイントです。
一般的に使われる長形3号封筒(120×235mm)や洋形4号封筒(105×235mm)のサイズを、ページ設定で正確に設定しておく必要があります。
エクセルで封筒サイズのページ設定をする手順
「ページレイアウト」タブ →「サイズ」→「その他の用紙サイズ」→「用紙サイズ」タブ →「用紙サイズ」で「カスタムサイズ」を選択 → 幅と高さに封筒の寸法を入力(例 長形3号 幅12cm 高さ23.5cm) → OK
ページ設定が完了したら、封筒の宛名欄に相当するセル位置に郵便番号・住所・氏名のVLOOKUP関数を設定します。
印刷前に必ずプレビューで位置ずれがないか確認する習慣をつけておくと、用紙の無駄遣いを防ぐことができます。
VBAマクロで差し込み連続印刷を自動化する方法
続いては、件数が多い場合や定期的に繰り返す業務において、VBAマクロで差し込み印刷を自動化する方法を確認していきます。
VBAを使えば、番号を1から最終件数まで自動でループさせながら連続印刷することができます。
基本的な差し込み連続印刷マクロの書き方
差し込み印刷を自動化する最もシンプルなVBAコードは、For〜Nextループで番号を1から最終行まで繰り返しながら印刷する構造です。
差し込み連続印刷の基本VBAコード
Sub 差し込み連続印刷()
Dim i As Long
Dim lastRow As Long
lastRow = Sheets(“データ”).Cells(Rows.Count, 1).End(xlUp).Row – 1
For i = 1 To lastRow
Sheets(“印刷”).Range(“E1”).Value = i
Sheets(“印刷”).PrintOut
Next i
End Sub
このコードは「データ」シートの最終行を自動判定し、「印刷」シートのE1に1から順番に数値を入れながら全件印刷する
VBAエディタはAlt+F11で開き、挿入 → 標準モジュールを追加してからコードを貼り付けます。
マクロを実行するには、VBAエディタで「F5」を押すか、エクセルの「開発」タブから「マクロ」→「差し込み連続印刷」を選んで「実行」をクリックします。
マクロを使う前に必ずファイルのバックアップを取っておくことを強くおすすめします。
印刷前にプレビュー確認を挟む方法
大量印刷をする前に、内容が正しいかどうかを確認したい場合は、PrintOutの代わりにPrintPreviewを使うとよいです。
印刷の代わりにプレビュー表示するVBAコード
Sheets(“印刷”).PrintPreview
→ PrintOut をこの1行に置き換えることで、印刷の代わりにプレビューウィンドウが開く
全件プレビューを順番に確認したい場合はそのままループに組み込む
確認OKなら PrintOut に戻して本番印刷を実行する
プレビューで問題がなければ「PrintOut」に戻して本番印刷を実行するという流れで作業を進めることで、誤印刷のリスクを大幅に減らすことができます。
差し込み印刷マクロを実行ボタンに割り当てる方法
作成したマクロを毎回VBAエディタから実行するのは手間がかかります。
エクセルのシート上にボタンを設置してマクロを割り当てておくと、ボタンをクリックするだけで連続印刷が始まり、操作がぐっとシンプルになります。
マクロ実行ボタンを設置する手順
「開発」タブ →「挿入」→「フォームコントロール」の「ボタン」をクリック → シート上でドラッグしてボタンを描画 → 表示されたダイアログで「差し込み連続印刷」を選択 → OK
「開発」タブが表示されていない場合は「ファイル」→「オプション」→「リボンのユーザー設定」→「開発」にチェックを入れてから操作する
ボタンを設置しておくと、VBAの知識がない方でもワンクリックで差し込み連続印刷を実行できるようになります。
ボタンのラベル名を「差し込み印刷を実行」などわかりやすい名前に変更しておくと、誰が使っても迷わない運用ができます。
以下のイメージ図は、印刷シートにマクロ実行ボタンと番号切り替えセルを設置した状態を示しています。
Microsoft Excel — 印刷シートにボタンを設置した状態
挿入
ページレイアウト
開発 ← 開発タブ
⚡ ボタンにマクロを割り当てることで全件連続印刷がワンクリックで実行できる
まとめ
この記事では、エクセルで差し込み印刷をする(やり方・ラベル・封筒・連続印刷・VLOOKUPとの組み合わせ)方法について、基本の手動方式からVBAによる自動化まで幅広く解説しました。
少数件数の印刷であればVLOOKUP関数と番号切り替えセルを組み合わせた手動方式が手軽で、大量の封筒やラベルにはWordの差し込み印刷機能にエクセルデータを連携させる方法が適しています。
定期的に繰り返す連続印刷業務では、VBAマクロでループ処理を組み込み、実行ボタンに割り当てることで作業を大幅に効率化できます。
「データシートで情報を管理し、印刷シートでレイアウトを整え、VLOOKUPで繋げる」という3層構造の考え方を理解しておくことが、エクセルでの差し込み印刷をマスターする近道です。
今回の内容を活用して、エクセルでの差し込み印刷作業をよりスムーズに進めていただけますと幸いです。