基本⑤(終):「終わった問題」の行と「今の問題」の行を色分け表示する

「基本シリーズ」、いよいよ最終回です。
前回…基本④:タイトルバーを作り、問題数やラウンド名などを表示する

前回、「正誤スルー入力セル」の左側のB列に、「その問題が終了した(=その行に1つでも文字が入力されたか)」をチェックするセルを作りました。

今回はこれを利用し、「次の問題はどの行に入力すればよいのか」「その行はすでに入力済みか」を色でわかるようにします。
そうすることで、行を飛ばして入力してしまったり、1行の中に重複して入力したりする、といったミスを防ぐことができます。
これらのミスを犯したからといって、「正誤数を表示する」という面では特に問題はないですが、入力を飛ばしてしまったら入力するセルが足りなくなってしまうし、重複入力の場合は、実際の出題数よりも1問少なく表示されてしまいます。

状況によってセルの色を変える…これは条件付き書式の出番ですね。

それでは、前回の続きから作っていきます。
完成品はこちらです。

【使用するExcelの機能】

条件付き書式

【作り方】

①終了済みの問題の行を灰色に着色するように設定する

まず、B6セルに「1」を入力して下さい。
B6セルというのは、1問目が割り当てられている7行目の1つ上です。
なぜこのようなことをするのかは、あとで分かります。
(「1」という文字を見せたくない場合は文字の色を白に設定して下さい。)

正誤スルー入力セル全体、D7:L56を選択し、「条件付き書式」(「ホーム」タブ、「スタイル」グループ内)をクリック、その中から「新しいルール」を選択します。

「数式を使用して、書式設定するセルを決定」を選び、以下の数式を入力します。

=AND($B7=1,$B6=1)

これは何をチェックしているかというと、「"その問題(行)がすでに出題済み"かつ"その1つ前の問題(行)がすでに出題済み"」かどうか?ということです。

勝利・失格時に色が変わるようにする」の復習になりますが、入力する条件式は、「選択しているセルのうち最も左上のセルの場合」で書くのでしたね。今回の場合はD7セルです。

この数式を書く際に注意すべきことは、絶対参照です。行と列、どちらを"固定"するか?という問題です。
D7セルは7行目ですから、B7セルとB6セルがともに1かどうかをチェックすればよいですね。
では、違う列のF7セルはどうでしょうか?
これもD7セルと同じ行ですから、B7セルとB6セルをチェックすればよい。
では、H14セルは?
14行目ですから、B14セルとB13セルをチェックすればよい。

要するに、どの列にいても、かならずB列のセルをチェックしなければならないのはどこも同じなのです。
だから、条件式では、列にのみ絶対参照を適用するのです。

条件式が書けたら、「OK」を押して書式設定をしましょう。
文字の色は特に変えなくてもよいですので、「塗りつぶし」タブから灰色を選びましょう。薄すぎると意味がないので、なるべく濃いものを選びましょう。

すると、出題済みのセルがきちんと灰色に染まっていることがわかります。

②今出題中の問題の行を黄色く表示するように設定する

今出題中の行、というのは、言い換えれば、「次に1かxを入力する行」ということです。
こちらも、先ほどと同様にD7:L56を選択し、新しいルールを設定します。
条件式はこちらです。

=AND($B7=0,$B6=1)

言葉で言うと、「"その問題(行)はまだ終わってない"かつ"1つ前の問題(行)はもう終了している"」という状態です。
「塗りつぶし」で目立つ色を選びます。とりあえず黄色を選択します。


OKを押すと、きちんと最新の問題の行が黄色くなっていることがわかります。


これで、基本的な機能は全て揃いました。
おつかれさまでした!!

【補足】

さて、条件付き書式を設定したと思ってセルを見ると、何にも変わっていないということがたまにあります。
試しに「ルールの管理」(「条件付き書式」ボタンを押して出るプルダウンリストの中で一番下にあります)を押して、設定したルールのリストから、先ほど設定したルールを編集(ルール選択後、ウィンドウ内の「ルールの編集」を押すと、「新しいルール」を選択したときと同じウィンドウが現れる)すると…


=AND($B1048534=0,$B1048533=1)

なんなんだこの条件式は…
※Excelの行は最大1048576行まであります(Excel 2007以降の場合。)。

とまぁ、このように、入力した覚えのない行番号になってしまうことがたまにあります。直しておきましょう。

これまでに私も何度か遭遇し、原因不明のまま手直ししてきたのですが、ここで書く以上、原因を突き止めて説明しておきたかったのです。本来は。
しかし、色々なキーワードを試して軽くググってみましたが、原因らしきものは見当たらず…

どなたかご存知でしたら、コメントで教えてくれるとありがたいです。

コメント

このブログの人気の投稿

基本①:「m○n×クイズ」の得点表示の作り方

参加者の苗字と名前を分離する/選手名を均等な大きさで表示する

勝ち抜け時に順位を表示する