【エクセル】印刷範囲を自動で調整する方法。OFFSET関数で行や列の追加も対応!

エクセルで行や列を追加すると自動で印刷範囲が調整される方法

Excel(エクセル)の表を印刷する時、最下行や右端の列にデータを追加するたびに印刷範囲を調整するのは面倒です。

今回の記事では、行や列のデータを追加すると、自動で印刷範囲が変更される設定方法を解説します。

Excelファイルに1度設定しておくだけで、今後、印刷範囲を1ページ目に収めるなどの調整を行なう必要がなくなり、作業効率が上がります。

印刷範囲の設定に、OFFSET関数(オフセット関数)を使用しますが、基本的に紹介する関数を貼り付けることで設定できるので、安心してください。

それでは、どうぞご覧ください。

印刷範囲を自動で調整する方法(行&列の追加)

印刷範囲の自動化を設定する方法を、手順1~5に沿って解説します。

手順を誤って操作を前後したり抜けてしまうと、印刷範囲が拡張されなかったり、2ページ目の印刷に反映されなかったりするので気を付けてください。

今回は、下の表の赤枠部分にデータを追加すると、自動で印刷範囲が拡張される設定方法を解説します。

元データ(印刷範囲の設定前)
元データ(印刷範囲の設定前)

自動化/手順1.ページ数を設定

まずは、印刷のページ数を設定します。

「ページレイアウト」タブの拡大縮小印刷グループの横と縦のページ数を設定します。

今回は、下にデータが追加された際に、印刷範囲が2ページ目以降に拡張されるように、『横:1ページ、縦4ページ』で設定します。

手順1.印刷のページ数を設定
手順1.印刷のページ数を設定

データを追加しても印刷範囲を1ページに収まるようにしたい場合は、『横:1ページ、縦1ページ』で設定してください。

自動化/手順2.「印刷範囲の設定」をクリック

次に、印刷するデータ範囲をドラッグで選択します。

下の例では、B2セルからK51セルまでを選択します。

手順2-1.印刷するデータ範囲を選択
手順2-1.印刷するデータ範囲を選択

選択したセル範囲はそのままで、「ページレイアウト」タブの「印刷範囲」の「印刷範囲の設定」ボタンをクリックします。

手順2-2.印刷範囲の設定をクリック
手順2-2.印刷範囲の設定をクリック

自動化/手順3.「名前の管理」をクリック

「数式」タブの「名前の管理」ボタンをクリックします。

手順3.名前の管理をクリック
手順3.名前の管理をクリック

手順2の作業によって、印刷範囲に「名前」が設定されたため、次の手順4で印刷範囲を数式で定義します。

「名前」機能は、特定のセル範囲に名前を付けて関数や数式を簡単に設定できる機能です。

「名前」機能について詳しく知りたい方は、以下の記事を参考にしてください。

自動化/手順4.OFFSET関数で印刷範囲を指定

この手順4が最も重要な作業となります。

「名前の管理」画面が表示されるので、「Print_Area」という名前をクリックして選択します。

「Print_Area」の名前をクリック
「Print_Area」の名前をクリック

画面下の参照範囲覧に、以下のOFFSET関数を貼り付けします。

=OFFSET($B$2,0,0,COUNTA($B:$B),COUNTA($2:$2))

「Print_Area」にOFFSET関数を入力
「Print_Area」にOFFSET関数を入力

自動化したい印刷範囲に合わせて、数式の以下の部分を変更してください。

OFFSET関数の変更箇所

$B$2 ⇒ 印刷範囲の左上のセル

COUNTA($B:$B) ⇒ 「$B:$B」の「B」は表の左端の列番号を指定

COUNTA($2:$2))⇒ 「$2:$2」の「2」は表の見出しの行番号を指定

自動化したい印刷範囲に合わせてOFFSET関数を修正したら、画面右下の「閉じる」を選択します。「名前の参照への変更を保存しますか?」と問われるので「はい」をクリックします。

名前の参照先の変更を保存
名前の参照先の変更を保存

以上で、印刷範囲の自動化の設定作業は完了です。

自動化/手順5.印刷範囲が変化するか確認

最後に、表の列や行を追加して、印刷範囲が自動で調整されるか確認してみましょう。

「表示」タブの「改ページプレビュー」ボタンを押して、印刷範囲を目視で確認しやすくしてから最下行を追加してみます。

下の図のように、B52セルにデータを入力すると、印刷範囲が自動で52行目までに広がりました。

最下行にデータを入力すると印刷範囲が自動で広がる
最下行にデータを入力すると印刷範囲が自動で広がる

同様に、表の右端のL2セルにデータを入力しても、印刷範囲が自動でL列までに広がります。

右端の列にデータを入力すると印刷範囲が自動で広がる
右端の列にデータを入力すると印刷範囲が自動で広がる

このように、印刷範囲が自動で変わることを確認できれば、ファイルを上書き保存してください。再度、エクセルを開き直しても、自動化が解除されることはありません。

自動化の注意点.印刷設定の変更はNG!

自動化のための印刷範囲を設定した後は、印刷範囲の変更は厳禁です。

例えば、「ページ設定」画面で印刷の縦横のページ数を変えたり、改ページプレビューの青色線をドラッグしてはいけません。

これらの操作をすると、上記の手順2で設定した印刷範囲の参照範囲が再度リセットされてしまい、設定したOFFSET関数が消されてしまいます。

印刷範囲を設定した後の変更は厳禁
印刷範囲を設定した後の変更は厳禁

OFFSET関数で設定した印刷範囲を後から変更する方法

「名前の管理」で入力したOFFSET関数は後からでも修正が可能です。

もう一度、「数式」タブの「名前の管理」をクリックします。

OFFSET関数を後から変更(修正)する方法
OFFSET関数を後から変更(修正)する方法

「名前の管理」を開くと、「Print_Area」という名前があるのでクリックで選択します。後は、参照範囲のOFFSET関数の任意の場所を変更してください。

OFFSET関数を変更して印刷範囲を変更
OFFSET関数を変更して印刷範囲を変更

印刷範囲に余分な空白行や空白列を設定したい場合は、COUNTA関数の後ろに+1や+2を追加してください。

=OFFSET($B$2,0,0,COUNTA($B:$B)+2,COUNTA($2:$2)+1)

(参考)印刷範囲を調整するOFFSET関数とは?

OFFSET関数は、『基準のセルから指定した分だけ移動した位置にあるセル範囲を選択』する関数です。

例えば、「=OFFSET(B2,4,2,1,1)」と入力した場合は、『B2セルを基準として、4行下&2列右に基準セルを移動し、その位置から縦1セル、横1セル分のセルの値であるD6セルの値』が返されます。

OFFSET関数はセル範囲を選択する関数
OFFSET関数はセル範囲を選択する関数

このOFFSET関数の第4引数と第5引数に、文字数をカウントするCOUNTA関数を挿入することで、データの大きさに合った印刷範囲を設定しています。

OFFSET関数の基本的な使い方を知りたい方は、以下の記事も覗いてみてください。

-Excel(エクセル), 印刷・印刷範囲