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

Excel印刷範囲自動調整

みなさん、印刷範囲の設定で「また直すのか…」って思ったことありませんか。

前回は OFFSET 関数を使った方法を紹介しましたが、もう少し楽にできる方法があるんです。
それが テーブル化 です。

テーブル化を使えば、数式を管理しなくてもデータが増えれば自動で印刷範囲が伸びてくれます。
今日は、そのやり方を一緒に見ていきましょう。

OFFSET関数よりずっとシンプルになります

前回紹介したOFFSET関数の課題の振り返り

前回記事では、OFFSET関数による、印刷範囲を自動伸縮!では、

OFFSET+COUNTAを使って印刷範囲をデータ件数に応じて自動的に調整する手法を紹介しました。

しかし、この方式には以下のような課題がありました。

  • 空白セルがあると正しく範囲を取得できない
    COUNTA関数は「空でないセルの個数」を数えるため、途中に空白があると範囲が不正に広がる可能性があります。
  • 参照列(B列)以外の列に入力があると連動しない
    例ではB列の入力数を基準に高さを決定しているため、A列やC列のみ入力された場合には反応しません。

ここでは、これらの課題を回避できる「テーブル化」の方法をご紹介します。

テーブル化による改善策の手順

OFFSETの弱点を避ける方法として、テーブル化があります。
テーブル化を使うと、空白や列依存の問題を気にせず、簡単に印刷範囲を調整できます。

次のサンプルデータを使い、解説します。

No商品名売上金額
1商品A100
2商品B200
3商品C150
4商品D300
5商品E250
6商品F180
7商品G210
8商品H190
9商品I220
10商品J260
11商品K240


1.データ範囲 $A$1:$C$12 を選択 →[ホーム][テーブルとして書式設定] → 好きなスタイルを選択

2.「テーブルの作成」ダイアログ が表示される

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

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

Excel印刷範囲設定手順

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

    印刷範囲が自動伸縮しないケース:トラブルシューティング

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

    OFFSET方式とテーブル方式:比較から導く結論

    比較

    方法空白への耐性他列への対応手順の複雑さ信頼性
    OFFSET+COUNTA弱い(空白でずれる)基準列のみ数式管理が必要
    テーブル化強い(空白の影響が少ない)全列対応手順が簡単

    結論

    実務で印刷範囲を自動化するなら、テーブル化一択です。
    OFFSET方式を選ぶ理由はありません。

    まとめ

    OFFSET関数は応用が利きますが、運用次第で不安定になりやすい面があります。
    一方でテーブル化は、設定が直感的で安定しており、実務での使いやすさに優れています。
    初心者がまず取り組む方法としては、テーブル化をおすすめします。


    Excel テーブル機能を使い印刷範囲を自動伸縮する方法を紹介するガイドのタイトル画像

    OFFSET関数を使えば、データ件数に応じて印刷範囲が自動伸縮します。

    毎回手動で範囲を選ばなくても済み、ミスも省けます。

    本記事でのゴールは、次のような「印刷範囲の自動伸縮」を目指します。

    ※GIFが小さくて見づらい場合は、クリックすると拡大します。

    手順1:サンプル表を準備

    本記事では以下のサンプルデータを用意しました。


    A列:NoB列:商品名C列:売上金額
    1商品A100
    2商品B200
    3商品C150
    4商品D300
    5商品E250
    6商品F180
    7商品G210
    8商品H190
    9商品I220
    10商品J260
    11商品K240

    手順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方式)

    📌 別記事で紹介予定(テーブル化)

    OFFSETの課題をそもそも避けたいなら、範囲を テーブル形式 にする方法もあります。

    • データの追加・削除に自動で対応
    • どの列に入力しても範囲が拡張
    • COUNTAの数式管理が不要

    👉 テーブル化の詳しい使い方は、別記事で具体的に紹介予定 です。


    🧑‍🏫 まとめ

    OFFSET関数を使った印刷範囲の自動伸縮は、データ追加・削除に強く、手間ゼロの実務向け設定
    ただし空白セルや基準列の取り方には注意が必要です。

    👉 OFFSET方式の弱点を避けたいなら、テーブル化 という選択肢もあります(詳細は別記事で解説予定)。