Excel 10面ラベル印刷 ― Print_Area数式で空白シールを自動除外

1. この記事でできること

市販の10面ラベルシール(A4に左右2列×5段=10面)にExcelだけで宛名やバーコードを印刷します。データ件数に応じて Print_Area が自動的に伸縮するため、8件しかデータがなければ1枚目だけが印刷され、空白シールだけの2枚目は出力されません。VBAもWordの差し込み印刷も使わないので、Excelの基本操作ができる人に渡してそのまま作業してもらえます。

2. 前提:10面ラベルシールの構成

A4用紙1枚に10面のラベルが並びます。Excel上では1面あたり5行を使い、左右2列で合計6列(A〜F列)を使用します。1ページ=5段×5行=50行です。この「50行で1ページ」という単位が Print_Area の CEILING 計算の基礎になります。

1ページ目
シール1枚目(1〜50行)― データ10件で全面使用
① 山田太郎
東京都…
② 鈴木花子
大阪府…
③ 佐藤一郎
北海道…
④ 高橋美咲
福岡県…
⑤ 田中健太
愛知県…
⑥ 渡辺裕子
神奈川…
⑦ 伊藤誠
埼玉県…
⑧ 中村由美
千葉県…
⑨ 小林大輔
京都府…
⑩ 加藤陽子
兵庫県…
2ページ目
シール2枚目(51〜100行)― データ5件+空き5面
⑪ 吉田真一
静岡県…
⑫ 松本幸恵
広島県…
⑬ 井上隆
宮城県…
⑭ 木村彩
新潟県…
⑮ 林正樹
長野県…
空き
空き
空き
空き
空き
印刷しない
シール3枚目(101〜150行)― データ0件
空き
空き
空き
空き
空き
空き
空き
空き
空き
空き
Print_Area 外 → 出力なし

3. Excel シートの設計

ブックには最低2つのシートを作ります。「宛先リスト」にデータを一覧で入力し、「ラベル」シートが印刷用のレイアウトになります。

ラベル印刷.xlsx
ラベル
宛先リスト

▼ ラベルシートの Excel 上の構成(A〜F列、1面=5行、1ページ=50行)

ABCDEF
1 〒 =VLOOKUP(...) 〒 =VLOOKUP(...)
2 住所1 住所1
3 住所2 住所2
4 会社名・部署 会社名・部署
5 氏名 様 氏名 様
6── 2面目開始 ──
6 〒 =VLOOKUP(...) 〒 =VLOOKUP(...)
(以降 5行単位で繰り返し)
46 〒 =VLOOKUP(...) 〒 =VLOOKUP(...)
47-50 住所〜氏名 住所〜氏名
ポイント:1面=5行、左右2面で1段。5段×5行=50行で1ページ(=シール1枚)が完成します。A〜C列が左面、D〜F列が右面です。

▼ 宛先リスト(データ入力シート)

ABCDEF
1No氏名郵便番号住所1住所2会社名・部署
21山田太郎100-0001東京都千代田区…◯◯ビル3F株式会社ABC 営業部
32鈴木花子530-0001大阪府大阪市…DEF株式会社 総務部
(データを下方向に追加)

4. ラベルシートに数式を仕込む

ラベルシートの各セルには VLOOKUP(または XLOOKUP)を使い、宛先リストからデータを自動取得します。ポイントは「何番目のデータを取得するか」をセルの行位置から逆算する仕組みです。

4-1. 面番号の計算

各面が何番目のデータに対応するかを算出します。左面(A列側)と右面(D列側)で計算が異なります。

面番号の計算(A1セルの場合) 左面の面番号 = (INT((ROW()-1)/5)) * 2 + 1 右面の面番号 = (INT((ROW()-1)/5)) * 2 + 2 例:A1〜A5 → 面番号1(1件目)、D1〜D5 → 面番号2(2件目)   A6〜A10 → 面番号3(3件目)、D6〜D10 → 面番号4(4件目)

4-2. VLOOKUP で宛先を取得

左面のA1セル(郵便番号行)に入れる数式の例です。面番号を VLOOKUP の検索値として使います。

A1:郵便番号(左面) =IFERROR( "〒"&VLOOKUP( (INT((ROW()-1)/5))*2+1, 宛先リスト!$A:$F, 3, FALSE ), "" )
D1:郵便番号(右面) =IFERROR( "〒"&VLOOKUP( (INT((ROW()-1)/5))*2+2, 宛先リスト!$A:$F, 3, FALSE ), "" )

住所1(2行目)、住所2(3行目)、会社名(4行目)、氏名(5行目)も同様に、VLOOKUP の列番号を 4, 5, 6, 2 に変更するだけです。氏名の場合は末尾に「&" 様"」を付けます。

A5:氏名(左面) =IFERROR( VLOOKUP( (INT((ROW()-1)/5))*2+1, 宛先リスト!$A:$F, 2, FALSE ) & " 様", "" )

4-3. 数式のコピー

A1:C5(左面1面目)とD1:F5(右面1面目)の数式が完成したら、A1:F5 を選択して50行目(A50:F50)まで一括コピーします。ROW() を使っているので面番号が自動的に変わり、10面すべてに正しいデータが表示されます。2ページ目以降も同様に50行単位でコピーを続けます。

⚠ 数式を間違えると、ズレたまま大量印刷してしまう危険があります。必ず印刷プレビューで全ページの宛名が正しいか確認してください。特に VLOOKUP の列番号(3, 4, 5, 6, 2)の指定ミスに注意します。

5. Print_Area に動的数式を設定する

データ件数が変わっても印刷範囲が自動調整されるよう、名前の管理で Print_Area に数式を設定します。

1
「数式」タブ →「名前の管理」を開きます。
2
一覧から「Print_Area」を選択します(存在しない場合は「新規作成」で名前を Print_Area、範囲を「ラベル」シートにします)。
3
「参照範囲」欄に以下の数式を入力して「OK」→「閉じる」。

XLOOKUP 版(Microsoft 365 推奨)

Print_Area 数式 =ラベル!$A$1:INDEX( ラベル!$A:$F, CEILING( XLOOKUP(TRUE, INDEX(ラベル!$A:$A<>"",0), ROW(ラベル!$A:$A), ,0,-1), 50 ), 6 )

XLOOKUP で A列に値がある最終行を検索し、CEILING で50の倍数に切り上げます。データ15件なら最終行は38行目付近 → CEILING(38,50)=50 → 1ページ分。データ11件なら最終行は30行目付近 → CEILING(30,50)=50 → やはり1ページ。データ11件で右面にも配置されるので最終行は実際にはもう少し下がり、場合によっては2ページに及びます。

COUNTA 版(Excel 2019 以前)

Print_Area 数式 =ラベル!$A$1:INDEX( ラベル!$A:$F, CEILING(COUNTA(ラベル!$A:$A), 50), 6 )
⚠ 最大の落とし穴:この数式を設定した後、「ページレイアウト」→「印刷範囲」→「印刷範囲の設定」ボタンを絶対にクリックしないでください。数式が静的な範囲に上書きされます。

6. データ件数と印刷ページの対応

データ件数 最終データ行 CEILING(最終行, 50) 印刷されるA4用紙
(=シール)の枚数
Print_Areaに
設定される範囲
5件15行目501枚A1:F50
10件25行目501枚A1:F50
11件30行目501枚A1:F50
15件40行目501枚A1:F50
20件50行目501枚A1:F50
21件55行目1002枚A1:F100
30件75行目1002枚A1:F100
50件125行目1503枚A1:F150
ポイント:左右2列配置のため、データ件数÷2 が段数になります。10件なら5段=25行(1面5行×5段)、11件なら6段目に入るので30行目まで使い、CEILING(30,50)=50で1枚に収まります。ただし20件を超えると2枚目が必要になります。

7. 印刷手順(実際の操作フロー)

1
「宛先リスト」シートにデータを入力します。A列にNo(連番)、B列に氏名、C列に郵便番号、D列に住所1、E列に住所2、F列に会社名・部署を入力します。
2
「ラベル」シートに切り替えます。VLOOKUP の数式により、入力したデータが各面に自動表示されます。
3
Ctrl+P で印刷プレビューを開き、ページ数とレイアウトが正しいか確認します。
4
プリンターにラベルシールをセットして印刷します。Print_Area の数式により、空白シールだけのページは印刷されません。
💡 他の人に渡す場合:このファイルは Wordの差し込み印刷を知らない人でも使えます。「宛先リストにデータを入力 → ラベルシートで印刷」の2ステップだけ伝えれば作業できます。ただしファイルサイズは通常のリストより大きくなります(10ページ分のテンプレートを仕込むため)。大量のデータ(50件超)を扱う場合は、テンプレートの行数を追加する必要があります。

8. 10面ラベルの構成イメージ

実際のA4ラベルシール上の配置を示します。データは上から順に左→右で配置され、シール1枚(=1ページ)の中で使い切ります。

1ページ目
データ10件 → 全面使用
① 山田太郎
〒100-0001
東京都千代田区…
② 鈴木花子
〒530-0001
大阪府大阪市…
③ 佐藤一郎
〒060-0001
北海道札幌市…
④ 高橋美咲
〒810-0001
福岡県福岡市…
⑤ 田中健太
〒460-0001
愛知県名古屋市…
⑥ 渡辺裕子
〒220-0001
神奈川県横浜市…
⑦ 伊藤誠
〒330-0001
埼玉県さいたま市…
⑧ 中村由美
〒260-0001
千葉県千葉市…
⑨ 小林大輔
〒600-0001
京都府京都市…
⑩ 加藤陽子
〒650-0001
兵庫県神戸市…
2ページ目
データ5件 → 半分使用
⑪ 吉田真一
〒420-0001
静岡県静岡市…
⑫ 松本幸恵
〒730-0001
広島県広島市…
⑬ 井上隆
〒980-0001
宮城県仙台市…
⑭ 木村彩
〒950-0001
新潟県新潟市…
⑮ 林正樹
〒380-0001
長野県長野市…
空き
空き
空き
空き
空き

9. トラブルシューティング

Print_Area の数式が消えた

「印刷範囲の設定」ボタンを誤ってクリックした可能性があります。「名前の管理」を開いて Print_Area の参照範囲を確認し、静的な範囲(例:=$A$1:$F$50)に変わっていたら、セクション5の数式を再入力してください。数式を印刷範囲外のセル(例:Z1)にテキストとしてメモしておくと復旧が簡単です。

宛名がズレている

VLOOKUP の列番号が間違っている可能性が高いです。郵便番号=3列目、住所1=4列目、住所2=5列目、会社名=6列目、氏名=2列目であることを確認してください。

空白ページが印刷される

CEILING の計算結果が実際のデータ行数より大幅に大きい場合、空白面だけのページが含まれます。COUNTA が空白セル以外のセル(ヘッダーや数式で空文字を返すセル)をカウントしていないか確認してください。IFERROR で "" を返す数式はCOUNTAでカウントされるため、XLOOKUP 版の数式を使う方が安全です。

10. まとめ

10面ラベルシール印刷は、1面=5行・1ページ=50行という単位を基準に VLOOKUP で宛先を配置し、Print_Area に CEILING を使った動的数式を設定することで実現します。データ件数に応じて印刷枚数が自動調整されるため、空白シールだけのページは印刷されません。Word の差し込み印刷が使えない人にも渡せる手軽さがある反面、テンプレートを多く仕込む分ファイルサイズが大きくなる点、数式のセットアップミスがそのまま印刷ミスにつながる点には注意が必要です。