■ はじめに覚えることは
表作成の考え方
一覧表作成(セル選択)
一覧表作成(書式設定)
一覧表作成(罫線)
一覧表作成(表示形式)
一覧表作成(数式と関数)
一覧表作成(データ操作)
一覧表作成(マクロ)
■ 一覧表作成(条件付書式)



一覧表の作り方

[12]条件付書式
 条件付書式を使って一覧表に罫線を引きましょう。
 Excelワークシートには、セルの枠線が表示されています。罫線を引かなくても表としての体裁は整えられますが、セルの枠線はプリントしても印刷されません。
 印刷する場合罫線は必要です。画面にセルの枠線と罫線の両方表示されていると綺麗に見えません。表に罫線を引いたときは、セルの枠線を非表示にすると画面もスッキリします。特に、健康カード一覧表は抽出や並べ替えをします。縞と罫線で表を整えることにします。

 下図は、健康カード一覧表をすべて表示したところです。縞と縦線で罫線を引いています。
 赤枠の行は、薄い水色で塗りつぶされています。


 下図は、3年生を抽出しクラス、番号で並べ替えました。上図で赤枠を付け行に、塗りつぶしはありません。条件付書式を使って、塗りつぶしをコントロールしています。




●条件付書式の使いかた

 下図は、Excel2003の条件付書式です。セルの値により適用する書式を切り替えることができます。


 Excel2007の条件付書式です。セルの値によりグラデーションでスケール表示できるようになりました。右下は、2003と同じ形式の条件書式ダイアログ ボックスです。




 健康カード一覧表には、数式や関数を使って条件付書式を設定します。
 関数は、関数を入力したセル自身に働きますから、条件付書式も全てのセルに設定します。
 下図は、計測データを入力する前の状態です。計測日〜座高までの4項目には入力がありません。セルに値がないから、セルの値を使った条件付書式は使えません。


 健康カード一覧表で使う条件付書式の条件とは、関数を使って以下のようになります。
(@)全項目、学籍番号を見て判断します。
   C〜L列は、B列に学籍bェ入力されていたら罫線を引きます。
(A)薄い水色は、学籍bェ表示されている偶数行に塗ります。
(B)学籍番号が表示されている奇数行には、罫線のみ引きます。(塗りつぶしません。)

◆Excel2003と2007では、条件付書式を設定する操作が全く異なります。
 2003では、対象範囲の全てのセルに条件付書式を設定します。1つのセルに条件付書式を設定し、範囲内の全セルに書式をコピーします。
 2007では、1つのセルに条件付書式を設定し、その設定を適用する範囲を指定します。設定するのは1つのセルのみです。

◆2003、2007共に、はじめに条件付書式を設定するセルは、先頭データ(B6セル)です。
 数式と関数はB6セルに入力し他のセルへコピーすることを前提に、以下のように作成します。絶対参照と複合参照の使い分け($の位置)に要注意です。
 =AND(B$5<>"", $B6<>"", MOD(SUBTOTAL(103, $B$5:$B6), 2)=0)  奇数行
 =AND(B$5<>"", $B6<>"", MOD(SUBTOTAL(103, $B$5:$B6), 2)<>0)  偶数行

 新入生を追加した場合、学籍b入力するだけで、行に罫線が描けるようにしているのが$B6<>""です。同様に、視力検査項目を(M〜R列)に追加しました。列方向に追加した分だけ罫線を描くのがB$5<>""なのです。


B$5<>"" ・・・当該セルの5行目に、見出し項目がある。
$B6<>"" ・・・当該セルのB列に、(学籍番号が)入力されている。
SUBTOTAL(103, $B$5:$B6) ・・・5行目(見出し行)〜当該行間に表示されている行の数。
MOD(SUBTOTAL(103, $B$5:$B6), 2) ・・・5行目〜当該行に表示されている行数を2で割った余りを求め、当該行が偶数行か奇数行かを判定します。
MOD(SUBTOTAL(103, $B$5:$B6), 2)=0 ・・・剰余がゼロの時、当該行は偶数行です。
MOD(SUBTOTAL(103, $B$5:$B6), 2)<>0 ・・・剰余がゼロでない時、当該行は奇数行です。
※見出しの5行目が1なので、データ先頭行(6行目)は2。偶数行になります。

 SUBTOTAL(3, B5:B10)は、COUNTA(B5:B10)と同じ意味です。B5〜B10の範囲で、値が入力されているセルの個数を返します。B5〜B10セルの全てに数字か文字が入力されていたら6が返ります。
 SUBTOTAL(103, B5:B10)は、B5〜B10セルの範囲で、値が入力され且つ表示されているセルの個数です。5行目〜10行目の間で非表示行があれば、6から非表示行数を引いた数が返ります。

◆2003と2007の大きな違いは、以下の2点です。
(@)設定できる条件は、2003は3つ。2007では、数の制限がなくなりました。
(A)条件付書式を他のセルに適用する場合、2003ではコピー&ペーストを使います。2007には、適用先でセルアドレスを指定します。

 2003は、コピー&ペーストで書式と共に条件付書式を他のセルに適用します。2007では、適用先で他のセルへ条件付書式のみ適用します。



データや項目の追加に対応できるよう、範囲は余分に指定します。
2003では広げすぎると、動きが遅くなります。

※条件付書式は、2007の方が使いやすく便利になりました。

 最後に枠線と(5行目の)見出しを隠し、画面を整えます。


Excel2003では、メニューバーのツールからオプションを選択します。

オプション ダイアログ ボックスの枠線のチェックを外し、ワークシートの枠線を消します。



Excel2007では、リボンの表示タブから枠線を択し、チェックを外します。


 4・5行目は通常使わないので、行高を低くし(2pt)目立たなくします。表としてスッキリします。
 オートフィルタを使ったり、フィルタ オプションで条件を増やすときは、行を広げて使用します。
●健康カード一覧表に条件付書式を使って罫線を引きます。

 健康カード一覧表は、フィルタ オプションを使ってデータ抽出します。表の大きさが、可変になっても対応てきる罫線を条件付書式を使って引きます。
 条件付書式は、Excel2003と2007でその操作は大きく違います。両方を見比べながら作っていきましょう。


●Excel2003で条件付書式を設定する方法

@データの先頭行(6行目)を選択し、ツールバーの書式から、条件付書式を選択し、条件付書式の設定ダイアログ ボックスを表示します。
 条件(1)を数式がに変更して、ボックスの中に関数を入力します。

          図1 条件付書式の設定ダイアログ ボックス

A下記の関数を入力したら、書式ボタンを押します。
 =AND(B$5<>"", $B6<>"", MOD(SUBTOTAL(103, $B$5:$B6), 2)=0)

          図2 数式を入力します

Bセルの書式設定ダイアログ ボックスで罫線を引きます。罫線は左右のみ引きます。(上下は塗りつぶしを使って仕切ります。)
 左右の罫線のみ
          図3 セルの書式設定ダイアログ ボックス

C追加ボタンを押して、2つ目の関数を入力します。
 =AND(B$5<>"", $B6<>"", MOD(SUBTOTAL(103, $B$5:$B6), 2)<>0)

          図4 条件(2)を入力します

 条件(2)の関数は、条件(1)がコピーし、<>に変更するだけです。

D偶数表示行は、色を付けます。奇数表示行に色を付けると、タイトルの色に接してしまうので、奇数行には色を付けません。

          図5 パターンでセルに色を付けます


          図6 完成した条件付書式です。

Eデータの先頭行(6行目)をコピーし、対象範囲(7行目〜総生徒数×3)に、形式を選択して貼り付けで書式を貼り付けます。

          図7 条件付書式を他のセルにコピーします。

※2003の条件付書式は、セルに関数を入力したのと同じことなので、広範囲に条件付書式を設定するとExcelの動作が遅くなります。
条件付書式は、必要な範囲に留めておくほうが良いでしょう。


●Excel2007に条件付書式を設定する方法
 2003のような書式のコピーは必要ありません。また、広範囲に条件付書式を設定しても2003のように、Excelの動きが遅くなることもありません。

FExcel2007では、先頭データ(B6)セルに条件付書式を設定します。
 リボンのホームタブから条件付書式コマンドをクリックし、新しいルールへと進みます。

          図8 新しいルールで条件を入力します

G図8、新しい書式ルール ダイアログ ボックスで、数式を使用して書式設定・・(赤枠)を選択し、ボックスに下記の(2003と同じ)関数を入力します。
書式を設定したらOKを押します。
 =AND(B$5<>"", $B6<>"", MOD(SUBTOTAL(103, $B$5:$B6), 2)=0)

H条件(2)の入力は、Fを繰り返して、新しいルールを選んでも良いし、図9のように、ルールの管理から新規ルール ボタンを押しても構いません。

          図9 ルールの管理ダイアログ ボックス

I2つの条件を設定したら、ルールの管理ダイアログ ボックスで、図9のように、適用先にセル範囲を入力します。OKを押して完了です。