Excel 宛名1ページ1枚 案内文書印刷 ― スピンボタン+Print_Areaで差し込み印刷風
目次
1. この記事でできること
「○○のご案内」のような定型文書に宛名・住所・敬称を自動差し替えし、1宛先=1ページで印刷します。Excelのスピンボタン(フォームコントロール)で表示開始番号を切り替え、10件ずつ一括印刷する仕組みです。VBAマクロは使いません。
Wordの差し込み印刷に不慣れな同僚に渡しても「スピンボタンを回して印刷を押すだけ」で作業が完了します。ただし、1件1ページ分のテンプレートを10件分(=10ページ分)シート上に仕込むため、ファイルサイズが通常より大きくなります。また、数式(VLOOKUPの列番号やIFの条件)を間違えるとズレたまま大量印刷してしまうリスクがあるため、事前に印刷プレビューで全ページを確認してください。
2. シート構成
ブックには「案内文書」と「宛先リスト」の2シートを使います。
▼ 案内文書シートの構成(1ページ=50行、10ページ分=500行をテンプレート化)
| A | B | C | D | E | |
|---|---|---|---|---|---|
| 1 | (日付・発信元ヘッダー) | ||||
| 2 | =VLOOKUP($Z$1, 宛先リスト!...) | ← 会社名 | |||
| 3 | =VLOOKUP($Z$1, ...) | ← 部署名 | |||
| 4 | =VLOOKUP($Z$1, ...) & " 様" | ← 氏名+様 | |||
| 5 | |||||
| 6 | ◯◯のご案内 | ||||
| 7-45 | (案内文書の本文) | ||||
| 46-50 | (余白・フッター) | ||||
| 51 | ── 2件目テンプレート開始 ── | ||||
| 51 | =VLOOKUP($Z$1+1, ...) | ← 2件目の会社名 | |||
| … | (以降50行単位で繰り返し × 10件) | ||||
| 500 | (10件目テンプレート終了) | ||||
▼ 宛先リスト
| A | B | C | D | E | |
|---|---|---|---|---|---|
| 1 | No | 氏名 | 会社名 | 部署名 | 敬称条件 |
| 2 | 1 | 山田太郎 | 株式会社ABC | 営業部 | |
| 3 | 2 | 鈴木花子 | DEF株式会社 | 総務部 | |
| 4 | 3 | 佐藤一郎 | GHI商事 | 経理部 | |
| … | (データを追加) | ||||
3. 案内文書テンプレートの作成
まず1件目のテンプレートを50行で作成します。1行目に日付と発信元、2〜4行目に宛名情報(数式で自動取得)、6行目にタイトル、7行目以降に本文を入力します。ページ設定で「50行=1ページ」になるよう行の高さと余白を調整してください。
4. 宛先データを差し込む数式
各ページの宛名セルに入れる VLOOKUP 数式です。n件目のテンプレートでは検索値を $Z$1 + (n-1) にします。
1件目(1〜50行)の数式
2件目(51〜100行)の数式
n件目の一般形
=IF(VLOOKUP($Z$1,宛先リスト!$A:$E,5,FALSE)="御中", VLOOKUP($Z$1,宛先リスト!$A:$E,3,FALSE)&" 御中", VLOOKUP($Z$1,宛先リスト!$A:$E,2,FALSE)&" 様")
5. スピンボタンの設置と設定
スピンボタン(フォームコントロール)を使い、Z1セルの値を切り替えます。
現在値:1、最小値:1、最大値:91(100件対応の場合)、変化の増分:10、リンクするセル:$Z$1
6. Print_Area に動的数式を設定する
宛先リストのデータ件数に応じて、印刷範囲を自動調整します。Z1 の値から10件分(=500行)を上限とし、実際にデータがある件数分だけに絞ります。
XLOOKUP 版(Microsoft 365 推奨)
宛先リストの最終データ番号から Z1 の開始番号を引き、表示件数を算出します。それに50を掛けて行数に変換し、500行(10ページ)を上限とします。例:データが25件でZ1=21なら、表示件数=25-21+1=5件、印刷範囲=5×50=250行(5ページ)。
COUNTA 版(シンプル版)
=案内文書!$A$1:$E$500 としてZ1だけ変えても問題ありません。空白ページが出ますが、Z1 を正しく設定すれば実害はありません。
7. バッチ印刷の操作フロー
30件のデータを印刷する場合のフローです。
1〜10件目
→ 印刷
11〜20件目
→ 印刷
21〜30件目
→ 印刷
8. ページプレビューのイメージ
Z1=1 のとき、10件の案内文書が10ページとして印刷されます。
9. Wordの差し込み印刷との比較
| Word 差し込み印刷 | この方法(Excel のみ) | |
|---|---|---|
| 必要なソフト | Word + Excel(またはCSV) | Excel のみ |
| 操作スキル | 差し込みフィールドの設定を理解する必要あり | スピンボタンと印刷だけで操作可能 |
| 他の人に渡して作業してもらう | 差し込み印刷の手順を教える必要がある | 「▲▼で番号を変えて印刷」だけ伝えればOK |
| レイアウトの自由度 | 高い(Word の書式機能が使える) | Excel のセル幅・行高に依存 |
| ファイルサイズ | テンプレート1ページ分で軽量 | 10ページ分のテンプレートを仕込むため大きくなる |
| 一括印刷 | 全件一括で可能 | 10件ずつバッチ印刷(スピンボタン操作が必要) |
10. 注意点とトラブルシューティング
Print_Area の数式が消える
「ページレイアウト」→「印刷範囲の設定」ボタンを押すと、名前の管理で設定した数式が静的な範囲に上書きされます。名前の管理からのみ操作してください。万が一のために数式をZ2セルなどにテキストとしてメモしておきましょう。
空白ページが印刷される
データが7件なのに10ページ印刷される場合、Print_Area の数式が正しく機能していません。名前の管理を開いて参照範囲にセクション6の数式が入っているか確認してください。
宛名が全ページ同じになる
すべてのテンプレートの検索値が $Z$1 のままになっている可能性があります。2件目は $Z$1+1、3件目は $Z$1+2 … となっているか確認してください。
スピンボタンが10ずつ動かない
「コントロールの書式設定」→「変化の増分」が1になっている可能性があります。10に変更してください。
11. まとめ
案内文書の宛名1ページ1枚印刷は、50行=1ページのテンプレートを10件分用意し、スピンボタンで Z1 の値を切り替えることで10件ずつ差し替え印刷する手法です。Print_Area に動的数式を設定すればデータ件数に応じてページ数が自動調整されます。Wordの差し込み印刷を知らない人にも渡せる手軽さがメリットですが、テンプレートを仕込む分のファイルサイズ増加と、数式のセットアップミスが印刷事故につながる点には注意してください。