今回の記事では
Excelで印刷範囲を指定できるのはいいけど内容が変わるたびに設定し直すのは大変
どうにか簡単に印刷範囲を調整する方法って無いの?
Excelで印刷範囲の設定はそのままでオリジナルの表の範囲を自動的に印刷対象に出来ない?
項目の追加や削除が結構あるから何とか自動化できると楽なんだけど
こういった疑問に答えます
✔Excelで印刷範囲設定を自動化する方法のテーマ
①Excelの印刷範囲を設定しながら自動化するにはテーブルとして書式設定一択
②オリジナルの表ならOFFSET関数とPrintAreaを組み合わせるのが最適解です
この記事を書いているのはOfficeを約20年間活用しながら
ITを活用したエステの経営マネジメントしている私の経験を基に
「Excelで印刷範囲設定を自動化する方法のテーマ」に関して実体験に基づいて解説しています
今回の内容を一緒にやりたい場合は▼のファイルをダウンロードして下さい
目次を使って読みたい項目へ
Excelの印刷範囲を設定しながら自動化するにはテーブルとして書式設定一択
Excelの「印刷範囲の設定」機能を使いながら印刷範囲を自動で調整するなら「テーブルとして書式設定」機能を使うのがベストな選択です
なぜなら、「テーブルとして書式設定」なら「印刷範囲の設定」機能を使いながら自動的に印刷範囲を調整してくれるからです
それでは、解説を初めていきますが前提として2つのシートを使って解説していきいます
シート1には「普通の表」という名前が付けてあります
シート2には「テーブルとして書式設定」という名前が付けてあります
また、シート2には「テストテーブル」という名前で「テーブルとして書式設定」された表が用意されています
1枚目のシートがこんな感じの表です
今回は分かりやすさ優先のため必要最低限しか入力していません
また、行列の色分けも分かりやすいようにすることが目的です
2つ目のシートはこんな感じです
「テーブルとして書式設定」をしたシンプルな表です
まずは、普通の方法で作った表に「印刷範囲の設定」をして項目数を増やすとどうなるのか見てみましょう
今回はわざと、印刷範囲ギリギリまで行と列数を入力しています
印刷したい「A2のセル~H39のセル」の範囲を選択して
「ページレイアウトタブ」の「ページ設定」グループにある「印刷範囲」をクリック
「印刷範囲の設定」をクリック
これで印刷したい範囲は決まりました
試しに印刷範囲の設定した結果を見てみましょう
こんな感じでちゃんと指定した範囲(タイトルは除いています)は印刷されます
では、行や列を追加したらどうなるでしょうか?
こんな風に行と列を追加しても、印刷結果は全く変わりません
なぜなら、印刷範囲の設定で指定した範囲しか印刷されないからです
ではこの表を「印刷範囲の設定」はそのままで印刷範囲を可変(自動で変更する)にはどうしたら良いでしょうか?
答えは「テーブルとして書式設定」です
もし、テーブルとして書式設定についてわからない時は「サクッと簡単!!Excelで表を作るには、テーブルとして書式設定を使え!!」という記事で解説しているので参考にして下さい
では、シート2に対して同じように「印刷範囲の設定」をした上で行列を追加してみましょう
シート1もシート2も内容は同じです
こんな風に行と列を1つずつ追加しました
さっきは、G列までしか印刷されませんでしたが今回はどうでしょうか?
コレが印刷結果です
解説上、横に並べていますが実際は2ページになってちゃんとH列まで印刷されています
つまり、「テーブルとして書式設定」機能を使って表を作れば自動で印刷対象の範囲を調整してくれるということです
めちゃくちゃ簡単なのにサクッとやりたいことを叶えてくれるので「印刷範囲の設定」機能で困った時は活用して下さい
繰り返しになりますが、Excelの「印刷範囲の設定」機能を使いながら印刷範囲を自動で調整するなら「テーブルとして書式設定」機能を使うのがベストな選択です
オリジナルの表ならOFFSET関数とPrintAreaを組み合わせるのが最適解です
オリジナルの表でどうしても印刷範囲を設定した上で印刷範囲を自動調整したい時はOFFSET関数を使うのが最適解です
なぜなら、普通の方法ではオリジナルの表の印刷範囲を自動調整することは出来ないので一工夫する必要があるからです
では実際のやり方について解説していきます
但し、この方法はある程度Excelの知識があって使いこなせないと難しい方法です
なるべく分かりやすく解説しますが、よく分からい場合はこの方法はやめて手動での再調整で対応するようにして下さい
今回は名前の管理機能を使って設定してきます
「数式タブ」の「定義された名前」グループにある「名前の管理」ボタンをクリック
一覧の真ん中に「Print_Area(プリント・エリア)」をクリック
「参照範囲の式」を変更することで範囲の自動化を実現します
まず、「Print_Area」とは「印刷範囲の設定」をしている部分のことです
今回2つ同じ名前があるのはシート1とシート2の両方に印刷範囲の設定をしているからです
では、参照範囲の数式「=普通の表!$A$2:$H$39」を日本語にしてみましょう
そうすると「普通の表シートのA2セル~H39セル」の範囲を印刷してね
という意味になります
つまり、印刷範囲の設定は「印刷したい範囲の行・列を指定」することで設定してくるということが分かります
と言うことは、セル範囲の指定を可変的(自動で範囲を選択できる状態)に出来れば印刷範囲も自動で調整できるということです
今回の設定はこの参照範囲の式に
「=OFFSET(普通の表!$A$2,0,0,COUNTA(普通の表!$A:$A)-1,COUNTA(普通の表!$2:$2))」
という関数を設定すればOKということになります
まずは、結果から見てみましょう
こんな風にテーブルとして書式設定をした時と同じことが出来ます
では、今回のOFFSET関数を分解して見ていきます
OFFSET関数の基本的な使い方は「OFFSET(参照,列数,行数,[高さ],[幅])」となります
今回の「=OFFSET(普通の表!$A$2,」までがA2セルを基準にしますよという意味です
次の「0,0,」は基準位置からは移動しませんという意味になります
つまり、OFFSET関数は「基準になるセルから移動または範囲を指定できる関数」という訳です
例えば「=OFFSET($A$1,1,1)」とした場合は「A1のセル」から「1行下の1列右」の「A」という文字が表示されます
動きとしてはこんな感じです
今回は範囲を動かしたいので「行と列は0」と指定しました
後半の「COUNTA(普通の表!$A:$A)-1,COUNTA(普通の表!$2:$2)」は高さと幅の指定なので
基準になった「A1からX行Y列」分の範囲を選択してね
という意味になります
そして、行と列を取得するためにCOUNTA関数を使って値が入力されている数を数えています
その結果を元に、それぞれの数分の高さと幅の分の範囲を選択するという訳です
言葉だけでは説明が難しいので図解で見てみましょう
たとえばこんな感じです
基準になったセルから3行3列分の範囲を選択してねということですね
今回の場合は3行3列というのは可変(自由に変化)するように作る必要があります
つまり、COUNTA関数を使って文字が入力されている行数と列数を数えた結果を範囲として指定してあげればい良いということです
「COUNTA(普通の表!$A:$A)-1」はA列全てを見て文字が入力されている数を数えます
例えば答えが「11」だとしたら答えは「11行」ということになります
最後の「-1」は今回タイトルを含めないので調整のための数字です
「COUNTA(普通の表!$2:$2)」は2行目全てを見て文字が入力されている数を数えます
これは行と同じルールです
つまり、この2つの設定により自由な行と列の範囲を指定できるという訳です
今回の内容はなかなか難しいので分からない時は無理せず手動で範囲選択をするようにして下さい
繰り返しになりますが、オリジナルの表でどうしても印刷範囲を設定した上で印刷範囲を自動調整したい時はOFFSET関数を使うのが最適解です
オススメのExcel解説書 5選
表示形式の設定は基本になるのでを本で学ぶのもオススメです
ちゃんと理解できれば時短にもなるので余裕がある時に読んでみましょう
本はいつでも見ることができ知識の宝庫なので読んで損なしです
スキマ時間などを活用して本で独学や教わったことを復習するなど活用の幅はたくさんあります
コメントを残す