| |
【第80回】 |
表の最下行から10行分だけを
自動的に印刷するように設定したい |
|
|
 |
|
 |
毎日の売上げや入場者数などを表の最後に追加している表があり、その内の最終行から10行分すなわち最新データ10件分だけを印刷して、上司などに報告したいとします。
こういった場合、通常は表の最終行から10行分だけを選択して、それを印刷範囲として設定したうえで印刷を実行するという手順を踏みます。あるいは、表の最終行から10行分だけを選択して、「印刷」ダイアログの「印刷範囲」グループで「選択した部分」を選択して印刷を実行します。
いずれの方法にしても、印刷する都度、印刷したいセル範囲を選択する手間を要します。 |
 |
|
| |
 |
 |
 |
| あるパビリオンの毎日の入場者数を記録した表がある時、入場者数が入力してある日(4月13日)から遡って10日分だけを印刷したい |
|
|
|
 |
 |
| |
 |
 |
 |
| 手作業でやる場合は、10日分のセル範囲を選択して…… |
|
|
|
 |
 |
| |
|
 |
 |
| |
 |
 |
 |
| 「印刷プレビュー」を実行すると、印刷範囲として設定した10日分のデータだけが印刷プレビューされる |
|
|
|
 |
|
 |
毎日毎日同じ印刷作業を行っているのであれば、何とかこれを自動化する方法はないでしょうか?
Excelでは、「印刷範囲の設定」機能で印刷したいセル範囲を設定すると、自動的にそのセル範囲が「PRINT_AREA」という「名前」で定義される仕組みとなっています。
そこで、名前を定義する機能(「挿入」→「名前」→「定義」)を用いて、「PRINT_AREA」という「名前」を定義して、表の最終行から10行分のセル範囲を設定しておけば、以降、表の最終行から10行分が印刷対象となります。
表の最終行から10行分を参照するには、指定した位置および行数・列数のセル範囲を参照する「OFFSET」関数と空白以外のセルの個数をカウントする「COUNTA」関数を用います。 |
 |
|
| |
 |
 |
 |
| 「名前」を定義するために、「挿入」→「名前」→「定義」を選択する |
|
|
|
 |
 |
| |
 |
 |
 |
| 「名前の定義」ダイアログの「名前」欄に「PRINT_AREA」と入力したうえで、下の「参照範囲」欄に「=OFFSET(Sheet1!$B$5,COUNTA(Sheet1!$D:$D)-2,0,-10,3)」と入力する |
|
|
|
 |
 |
| |
| =OFFSET |
(基準セル, シフトさせる行数, シフトさせる列数,[,行の高さ] [,列の幅]) |
|
 |
 |
| 「OFFSET」関数の書式はこの通り。ここでは、シフトさせる行数を指定するために「COUNTA」関数を用いて、毎日の入場者数を入力してあるD列の空白以外のセル数をカウントしてある。「-10」がシフトさせた行から上方向に10行分を参照する指定だ |
|
|
|
 |
 |
| |
 |
 |
 |
| 「名前の定義」ダイアログを閉じたあとに「印刷プレビュー」を行うと、最新データ10行分だけが印刷プレビューされる |
|
|
|
 |
 |
| |
 |
 |
 |
| あらたに4月14日の入場者数を追記して、「印刷プレビュー」を実行すると…… |
|
|
|
 |
 |
| |
 |
 |
 |
| いま追加した4月14日分から10日分のデータだけが印刷プレビューされる |
|
|
|