事例:
複数の表が同じシートにあるが、訳ありで、どれかの表を印刷するときは、他の表は、一緒に印刷したくない。1回だけなら、手動で印刷範囲指定でもいいが、何度もとなると面倒くさい。それに印刷範囲を指定出来ない人に、印刷だけ頼む場合も。
やっぱり簡単に印刷範囲を切り替えられると便利。
解決策:
下のような2つの表がある場合を考えてみる。
解決策:
下のような2つの表がある場合を考えてみる。
A | B | C | D | E | F | G | ||
1 | ||||||||
2 | ||||||||
3 | 表1 | 表2 | ||||||
4 | AAA | BBB | CCC | EEE | FFF | GGG | ||
5 | 1 | 1 | 1 | 1 | 1 | 1 | ||
6 | 2 | 2 | 2 | 2 | 2 | 2 | ||
7 | 3 | 3 | 3 | 3 | 3 | 3 | ||
8 | 4 | 4 | 4 | 4 | 4 | 4 | ||
9 | 5 | 5 | 5 | 5 | 5 | 5 | ||
10 | 6 | 6 | 6 | |||||
11 | 7 | 7 | 7 | |||||
12 | 8 | 8 | 8 | |||||
13 | 9 | 9 | 9 | |||||
14 | 10 | 10 | 10 | |||||
15 |
これも名前の定義
Print_Area
でなんとかなるだろう。
1.表1のエリアと表2のエリアをそれぞれ名前を定義しておく。
2.表1の名前と表2の名前をセレクトできるように、入力規則にリストを設定したセルを配置する。
3.Print_Areaの参照範囲に、2でセレクトされている名前によって、1で定義した名前のどっちを使うか切り替えるような式を入力する。
というような感じだろう。
具体的には
1.表1と表2の名前の定義
名前の定義で、
表1・・・・名前:表1、参照範囲:$A$3:$C$13
表2・・・・名前:表2、参照範囲:$E$3:$G$9
とする。
2.印刷範囲選択用のセルを配置。
適当なセルを選び、データの入力規則の設定で、
入力値の種類:リスト
ドロップダウン リストから選択する:チェック
元の値:表1,表2
とする。
3.名前の定義にPrint_Areaを設定。
参照範囲の式としては、IF関数で切り替えるようにしよう。
名前:Print_Area
範囲:シート
参照範囲:
IF(Sheet1!$B$1="表1",Sheet1!表1,IF(Sheet1!$B$1="表2",Sheet1!表2,Sheet1))
なお、$B$1は表選択用のセル。
ちなみに、Sheet1などのシート名はエクセルが勝手につけてくれるようだ。
ここでは、何も選択されていなかった場合にシート全体を印刷範囲とするために、入れ子の中のIF関数の偽の場合に必要なので、明示的につけある。
・・・・のはずだったが、ためしに省略してみたら、それでも印刷範囲は全体になった。
結局こういうことだ。
IF($B$1="表1",表1,IF($B$1="表2",表2,))
と入力すると、エクセルが勝手に
IF(Sheet1!$B$1="表1",Sheet1!表1,IF(Sheet1!$B$1="表2",Sheet1!表2,))
とシート名をつけてくれる。
これで、$B$1セルでリストから表1か2を選択すれば、印刷する表を切り替えることができるようになる。なお、全体を印刷したい場合は、$B$1でDeleteキーを押してクリアすれば良い。
また、前回のようなOFFSET関数を組み合わせれば(表1、2の名前の定義の参照範囲にOFFSET関数を使うということ)、データ数によって表1、2それぞれの範囲を可変にすることもできるだろう。
さて、次回はどんな内容にしようか?
0 件のコメント:
コメントを投稿