行数や列数が可変する表を印刷する場合、たびたび印刷範囲の設定をするのは面倒です。
表をテーブルに変換すると、印刷範囲の設定を1回行うだけで、自動的に拡張/縮小されるようになります。
テーブルを使用しない場合は、[Print_Area]ダイアログボックスの参照範囲に[INDEX関数]や[OFFSET関数]を使用して設定すると、自動的に範囲が拡張/縮小されるようになります。
この記事の目次
印刷範囲の設定
以下のような商品一覧の表があって、商品の数は増えたり減ったりします。
印刷範囲の設定
印刷したい範囲は、セル[A3]からセル[C23]までなので、その範囲を選択して[ページレイアウト]タブの[ページ設定]グループにある[印刷範囲]から[印刷範囲の設定]をクリックします。
印刷タイトルの設定
データが増えて、印刷枚数が増えてもタイトルを表示できるように[印刷タイトル]の設定をします。
1行目から3行目までを選択して、[ページレイアウト]タブの[ページ設定]グループにある[印刷タイトル]をクリックします。
[ページ設定]ダイアログボックスの[シート]タブが表示され、[印刷タイトル]の[タイトル行]に[$1:$3]と入力されています。
このまま[OK]ボタンをクリックします。
参考印刷時の[印刷タイトル]の設定については、以下の記事で解説しています。
-
すべてのページにタイトル行(タイトル列)を印刷する設定
縦に長い表を作成して、その表を印刷プレビューで確認すると、1ページには項目行が表示されますが、2ページ以降には項目行が表示されていません。 ...
データが増えた場合は[印刷範囲に追加]
データが増えた場合は、印刷範囲をそのたびに追加しなければなりません。
追加したいデータ範囲を選択して、[ページレイアウト]タブの[ページ設定]グループにある[印刷範囲]から[印刷範囲に追加]をクリックします。
キーボードから[Ctrl」+[P]を押して、印刷プレビューで確認します。
2ページ目を表示しても印刷タイトルが表示されます。
参考データを追加すると罫線を自動的に設定することもできます。条件付き書式を使用します。
-
新規データを追加したら自動的に罫線が追加される表にするには
Excelで表を作成する時、罫線を引いたりして書式を整えますね。 データが増えることがない表であれば、それで終わりかもしれませんが、新規デー ...
印刷関連の3つのコマンドについては、以下の記事で解説しています。
-
印刷範囲関連の3つのコマンドをクイックアクセスツールバーに登録
クイックアクセスツールバーに[印刷範囲の設定]、[印刷範囲に追加]、[印刷範囲のクリア]を追加すると、1回のクリックで印刷設定や範囲の追加、 ...
テーブルに変換して印刷設定
通常の表であれば、データが増えるたびに罫線を設定したり、印刷範囲を追加しなければなりません。
データ範囲をテーブルに変換すると、新規データを入力たびにテーブルが自動拡張されるので何もする必要がありません。
印刷範囲も1回設定すればOKです。
データ範囲をテーブルに変換
データ範囲内のセルをアクティブにして、[挿入]タブの[テーブル]グループにある[テーブル]をクリックします。
テーブル
関連データの整理と分析を行うテーブルを作成します。
テーブルに作成しておくと、シート内のデータの並べ替え、フィルター、書式設定を簡単に行えるようになります。
ショートカットキーは、[Ctrl]+[T]です。
[テーブルの作成]ダイアログボックスが表示されます。
自動でデータ範囲が指定されますが、データ範囲に隣接する文字列などがあると、範囲を修正する必要があると思います。
データ範囲を確認して、[OK]ボタンをクリックします。
参考テーブルの便利機能については、以下の記事にまとめています。
-
表をテーブルに変換してデータベース管理などの作業効率をアップ
Excelのテーブルはとても便利なものです。 通常の表をテーブルに変換することによって、データベースとしての機能が自動的に設定され、管理や分 ...
スタイルの解除
テーブルを作成すると、自動でスタイルが設定されます。
このスタイルが気に入らない場合は、変更したり、テーブルに変換する前の書式に戻すことができます。
[テーブルデザイン]タブの[テーブルのスタイル]グループから[クイックスタイル]をクリックします。
クイックスタイル
表の見た目を手早く変更します。
スタイルごとに異なる罫線や網かけを使って、表の見た目を変えることができます。ギャラリー内のスタイルの上にマウスのカーソルを置くと、ドキュメントの中で表がどのように表示されるのかプレビューすることができます。
クイックスタイルから[なし]を選択すると、元の書式になります。
印刷範囲の設定
テーブルで印刷範囲の設定をします。
印刷したい範囲は、セル[A3]からセル[C23]までなので、その範囲を選択して[ページレイアウト]タブの[ページ設定]グループにある[印刷範囲]から[印刷範囲の設定]をクリックします。
[名前の管理]で確認
テーブルで[印刷範囲の設定]をした後に、[数式]タブの[定義された名前]グループにある[名前管理]をクリックして、[名前の管理]ダイアログボックスを表示してみます。
[名前の管理]ダイアログボックスを表示するショートカットキーは、[Ctrl]+[F3]です。
[名前の管理]ダイアログボックスの[Print_Area]の[参照範囲]は、以下のように表示されています。
テーブルではない場合の[Print_Area]は、以下のようになります。
テーブルに変換するだけで、データが追加されても印刷範囲は、自動で拡張/縮小されます。
罫線も自動で設定されます。
もし、データを追加してもテーブルが拡張されない場合は、[オートコレクト]の設定を確認してみてください。
以下の記事で解説しています。
-
テーブルのサイズ変更と解除(自動拡張の設定はオートコレクトで)
Excelでテーブルを作成した後、テーブルのサイズを変更する方法です。 また、テーブルを通常の表に変換する方法と、自動拡張の設定についても解 ...
OFFSET関数やINDEX関数を使って印刷範囲を自動拡張
テーブルを使用するのが一番手っ取り早いのですが、テーブルは使用したくない、または、使用を制限されている場合もあると思います。
データ範囲を自動拡張できるように関数を使って設定することもできます。
印刷範囲の設定をした後に[数式]タブの[定義された名前]グループにある[名前管理]をクリックして、[名前の管理]ダイアログボックスを表示します。
名前の管理
ブックで使用する名前の作成や、ブック内のすべての名前の編集、削除、検索を行います。
名前は、数式でセル参照の代わりに使用できます。
たとえば、「=SUM(C20:C30)」の代わりに「=SUM(MySales)」と入力します。
ショートカットキーは、[Ctrl]+[F3]です。
[名前の管理]ダイアログボックスが表示されます。
この参照範囲を修正します。
INDEX関数を使って修正
[名前の管理]ダイアログボックスの[参照範囲]を以下のように修正します。
=$A$3:INDEX($C:$C,COUNTA($A:$A)+1)
[閉じる]ボタンをクリックすると、[名前の参照への変更を保存しますか?]のメッセージウィンドウが表示されますので[はい]をクリックします。
再度、[名前の管理]ダイアログボックスを表示すると、[参照範囲]にはシート名が自動で追加されています。
INDEX(インデックス)関数は、行と列で指定したセルの値を求める関数です。
INDEX(参照,行番号,[列番号],[領域番号])
INDEX 関数 - Microsoft サポート(Microsoft)
COUNTA(カウントエー)関数は、値が入力されているセルの数を返す関数です。
ここでは、セル[A2]が空白なので、[COUNTA($A:$A)+1]としています。A列に空白セルがない場合は、[+1]は不要です。
COUNTA 関数 - Microsoft サポート(Microsoft)
OFFSET関数を使って修正
[名前の管理]ダイアログボックスの[参照範囲]を以下のように修正します。
=OFFSET($A$3, 0, 0, COUNTA($A:$A)-1, 3)
[閉じる]ボタンをクリックすると、[名前の参照への変更を保存しますか?]のメッセージウィンドウが表示されますので[はい]をクリックします。
再度、[名前の管理]ダイアログボックスを表示すると、[参照範囲]にはシート名が自動で追加されています。
OFFSET(オフセット)関数は、基準とするセルから指定した行数、列数だけ移動したセルを参照する関数です。
OFFSET(基準,行数,列数,[高さ],[幅])
セル[A1]に文字を入力しているので、[COUNTA($A:$A)-1]としています。セル[A3]の上に文字を入力していない場合は、[-1]は不要です。
OFFSET 関数 - Microsoft サポート(Microsoft)
セル範囲に名前を付けて[Print_Area]で使用
先にデータ範囲に名前を付けて、その名前を[Print_Area]で使用することもできます。
[数式]タブの[定義された名前]グループにある[名前の定義]をクリックします。
名前の定義
名前を定義して適用します。
[新しい名前]ダイアログボックスが表示されます。
任意の[名前]を入力し、[範囲]では[Sheet1]を選択します。
[参照範囲]にOFFSET関数の数式を入力します。
=OFFSET($A$3, 0, 0, COUNTA($A:$A)-1, 3)
INDEX関数でもかまいません。
=$A$3:INDEX($C:$C,COUNTA($A:$A)+1)
[名前の管理]ダイアログボックスを表示して、[Print_Area]の参照範囲を修正します。
[Print_Area]を選択して[編集]をクリックします。
[名前の編集]ダイアログボックスが表示されますので、[参照範囲]の数式を削除して[F3]キーを押します。
[名前の貼り付け]ダイアログボックスが表示されますので、[範囲]を選択して[OK]ボタンをクリックします。
[名前の編集]ダイアログボックスには、[=Sheet1!範囲]と入力されていることを確認して[OK]ボタンをクリックします。
[名前の管理]ダイアログボックスの[Print_Area]の[参照範囲]が修正されていることを確認して閉じます。
または、[名前の管理]ダイアログボックスで[Print_Area]の[参照範囲]に[=範囲]と直接入力してもかまいません。
この場合は、[名前の参照への変更を保存しますか?]のメッセージウィンドウが表示されますので[はい]をクリックします。
再度、[名前の管理]ダイアログボックスを開くと以下のようになっています。
参考先に罫線が設定された表の場合も印刷範囲を自動伸縮できるようにしておくと、便利です。
参考セル範囲に名前を付ける方法と管理については、以下の記事で解説しています。
-
セル範囲に名前を付ける3つの方法(名前の定義)と名前の管理
Excelでは、セル範囲に名前を付けることで、さまざまな用途で活用することができます。 たとえば、数式でセル参照の代わりに名前を使用すると、 ...
セル範囲に名前を定義して数式で利用すると便利です。
-
セル範囲に名前を定義して数式で使用する
Excelでは、セル範囲に名前を定義しておくと、関数の引数に名前を利用することができます。 定義された名前は、[数式]タブの[数式で使用]ボ ...
自動伸縮するセル参照を使用すると便利な場合
印刷範囲の設定以外で、テーブルやOFFSET関数を使って自動伸縮するセル参照を使用すると、以下のような場面で役立ちます。
OFFSET関数を使用するより、テーブルを使用するほうが断然簡単です。
ピボットテーブルのデータソース
ピボットテーブルのデータソースとしてテーブルを使用すると、[更新]ボタンをクリックするだけで、データソースを変更できます。
-
ピボットテーブルの元データをテーブルにするとデータソースの更新が便利
ピボットテーブルを作成した後、ピボットテーブルの元データの範囲が変わると、その度に[オプション]タブの[データソースの変更]をクリックしてダ ...
グラフ元データ
グラフ元になるセル範囲をテーブルにしておくと、自動でグラフに反映させることができます。
-
グラフのデータ範囲を可変にして自動でグラフを拡張する2つの方法
Excelでグラフを作成して、グラフの参照元の範囲を拡張すると、グラフのデータ範囲も拡張しなければなりません。 この操作を行わず、グラフの参 ...
入力規則のドロップダウンリストのリスト範囲
入力規則の設定でドロップダウンリストを使用するときに、リスト範囲をテーブルにするとリスト範囲を修正する必要がありません。
-
入力規則のリストが可変(増減)するならテーブルに変換して自動修正
Excelの入力規則でドロップダウンリストから選択できるように設定することは多いですね。 でも、そのリストが増減する場合、その度に入力規則の ...
以下は、OFFSET関数で解説しています。
参考行も列も可変する時の合計値を求める場合にも使用できます。