Excelで印刷範囲を自動調整:テーブル機能を使った最も簡単な方法

みなさん、印刷範囲の設定で「また直すのか…」って思ったことありませんか。
前回は OFFSET 関数を使った方法を紹介しましたが、もう少し楽にできる方法があるんです。
それが テーブル化 です。
テーブル化を使えば、数式を管理しなくてもデータが増えれば自動で印刷範囲が伸びてくれます。
今日は、そのやり方を一緒に見ていきましょう。


OFFSET関数よりずっとシンプルになります
目次
前回紹介したOFFSET関数の課題の振り返り
前回記事では、OFFSET関数による、印刷範囲を自動伸縮!では、
OFFSET+COUNTAを使って印刷範囲をデータ件数に応じて自動的に調整する手法を紹介しました。
しかし、この方式には以下のような課題がありました。
- 空白セルがあると正しく範囲を取得できない
COUNTA関数は「空でないセルの個数」を数えるため、途中に空白があると範囲が不正に広がる可能性があります。 - 参照列(B列)以外の列に入力があると連動しない
例ではB列の入力数を基準に高さを決定しているため、A列やC列のみ入力された場合には反応しません。
ここでは、これらの課題を回避できる「テーブル化」の方法をご紹介します。
テーブル化による改善策の手順
OFFSETの弱点を避ける方法として、テーブル化があります。
テーブル化を使うと、空白や列依存の問題を気にせず、簡単に印刷範囲を調整できます。
次のサンプルデータを使い、解説します。
| No | 商品名 | 売上金額 |
|---|---|---|
| 1 | 商品A | 100 |
| 2 | 商品B | 200 |
| 3 | 商品C | 150 |
| 4 | 商品D | 300 |
| 5 | 商品E | 250 |
| 6 | 商品F | 180 |
| 7 | 商品G | 210 |
| 8 | 商品H | 190 |
| 9 | 商品I | 220 |
| 10 | 商品J | 260 |
| 11 | 商品K | 240 |
1.データ範囲 $A$1:$C$12 を選択 →[ホーム] → [テーブルとして書式設定] → 好きなスタイルを選択

2.「テーブルの作成」ダイアログ が表示される
- 「テーブルに変換するデータ範囲」:
$A$1:$C$12が自動で入る - 「先頭行をテーブルの見出しとして使用する」にチェックが入っているのを確認
- 問題なければ [OK] をクリック

3.テーブルを選んだ状態で 、[ページレイアウト] → [印刷範囲] → [印刷範囲の設定]

以上の手順により、行や列を追加・削除すると、印刷範囲が自動で調整されます。

印刷範囲が自動伸縮しないケース:トラブルシューティング
- 一部のセルが空欄の場合、印刷範囲は自動で縮まらない
→ 行や列そのものを削除すれば自動で縮む - 空欄の行や列を挟むと、印刷範囲の自動伸縮は止まる
→ データは隣接して連続して入力する必要がある

OFFSET方式とテーブル方式:比較から導く結論
比較
| 方法 | 空白への耐性 | 他列への対応 | 手順の複雑さ | 信頼性 |
|---|---|---|---|---|
| OFFSET+COUNTA | 弱い(空白でずれる) | 基準列のみ | 数式管理が必要 | 中 |
| テーブル化 | 強い(空白の影響が少ない) | 全列対応 | 手順が簡単 | 高 |
結論
実務で印刷範囲を自動化するなら、テーブル化一択です。
OFFSET方式を選ぶ理由はありません。
まとめ
OFFSET関数は応用が利きますが、運用次第で不安定になりやすい面があります。
一方でテーブル化は、設定が直感的で安定しており、実務での使いやすさに優れています。
初心者がまず取り組む方法としては、テーブル化をおすすめします。

OFFSET関数を使えば、データ件数に応じて印刷範囲が自動伸縮します。
毎回手動で範囲を選ばなくても済み、ミスも省けます。
本記事でのゴールは、次のような「印刷範囲の自動伸縮」を目指します。
※GIFが小さくて見づらい場合は、クリックすると拡大します。

手順1:サンプル表を準備
本記事では以下のサンプルデータを用意しました。
| A列:No | B列:商品名 | C列:売上金額 |
|---|---|---|
| 1 | 商品A | 100 |
| 2 | 商品B | 200 |
| 3 | 商品C | 150 |
| 4 | 商品D | 300 |
| 5 | 商品E | 250 |
| 6 | 商品F | 180 |
| 7 | 商品G | 210 |
| 8 | 商品H | 190 |
| 9 | 商品I | 220 |
| 10 | 商品J | 260 |
| 11 | 商品K | 240 |
手順2:通常通り、印刷範囲を設定する
次の手順に沿って、通常通り、印刷範囲を設定します。

ここまでは簡単ですね。慣れたものです
範囲指定→「ページレイアウト」→「印刷範囲」→「印刷範囲の設定」

手順3:「数式」→「名前の管理」→Print_Areaを選択
次の設定します。
💡 仕組みをちょっとだけ解説します
Print_Areaとは?
手順2で設定した印刷範囲のことです。
範囲を指定すると、自動的にこの名前が作られます。
仕組みとしては…
Print_Areaをデータ件数に合わせて自動的に伸縮させます。
こうした「動的な範囲指定」を実現できるのが OFFSET関数です。

ここまでは簡単ですね。慣れたものです
「数式」→「名前の管理」→「Print_Areaを選択」→「参照範囲を次の式に置き換える」
=OFFSET(Sheet1!$A$1,0,0,COUNTA(Sheet1!$B:$B)-1,COUNTA(Sheet1!$2:$2))
- OFFSET:基準セル($A$1)から行列移動なし
- 高さ:B列の入力行数
- 幅:2行目の入力列数



Offset関数の仕組みを詳しく知りたい方へ:https://biz-data-analytics.com/excel/1893/
手順4:入力を追加→改ページプレビューで確認
B列に商品を追加すれば、印刷範囲が自動伸縮して反映されます。

✅ 注意点とご案内
注意点(OFFSET+COUNTA方式)
- 空白セルがある列だと、正しく範囲を取得できない場合がある
↳ COUNTAは「COUNTA は空でないセルの個数を返す」を数える仕様のため
↳ COUNTA関数の解説と使用例 -空白のセルを除くすべてのデータをカウントする- に詳しい話を記載しております。 - 記事の数式は「B列の入力行数」を基準にしているため、A列やC列だけに入力しても印刷範囲は広がらない
📌 別記事で紹介予定(テーブル化)
OFFSETの課題をそもそも避けたいなら、範囲を テーブル形式 にする方法もあります。
- データの追加・削除に自動で対応
- どの列に入力しても範囲が拡張
- COUNTAの数式管理が不要
👉 テーブル化の詳しい使い方は、別記事で具体的に紹介予定 です。
🧑🏫 まとめ
OFFSET関数を使った印刷範囲の自動伸縮は、データ追加・削除に強く、手間ゼロの実務向け設定。
ただし空白セルや基準列の取り方には注意が必要です。
👉 OFFSET方式の弱点を避けたいなら、テーブル化 という選択肢もあります(詳細は別記事で解説予定)。

