Excelでカーソルのある行に色を付ける方法があります。
結構使うと便利ですが、使いどころとやり方、注意点などについてちょっとメモ投稿です。
選択しているセルのある行に色を付ける方法は?
やり方としては「条件書式」と「VBA」での設定が必要になります。
条件書式の設定
色を付ける範囲で内容が変わります。
ちなみに全部大文字でも問題なかったので好きな方で大丈夫です。
=CELL(“row”)=ROW()
ROWは行の意味です。
この場合は行だけ変更されます。
=CELL(“col”)=COLUMN()
COLUMNは列の意味です(CELLに指定するのは「col」なので注意)
この場合は列のみ変更されます。
「Cell()」は、セルの書式、位置、または内容に関する情報を返す関数です。
今回は「row」と「col」を入れているのでそれぞれ「対象範囲の左上隅にあるセルの行(列)番号」を返すという意味になります。
「ROW()」「COLUMN()」は引数として指定された配列の行番号を返します。ちなみに引数は「()」の部分に通常入れます。
今回は「()」に何も指定していないので数式が入力されている行(列)を指します(今いる位置)
行と列の両方(十字になるように)色を付ける場合
この場合は二つの書き方があります。
どちらでやっても問題ありません。好きな方で大丈夫です。
- 条件書式を行、列、それぞれ分けて作成する
- ORで一つの条件書式に設定する
=CELL(“row”)=ROW()
=CELL(“col”)=COLUMN()
上記の行と、列の条件書式をそれぞれ両方作成します。
短く済むので、式としては見やすいと思います。
=OR(CELL(“row”)=ROW(),CELL(“col”)=COLUMN())
上記のようにORを使用します。
ちょっと注意することとして「AND」じゃなくて「OR」を使うところです。
「AND」だとターゲットしているセルだけ色が変わります(セルだけがいいのであればこれでOK)
「書式」ボタンを押すと色やフォントの設定ができます。
設定が終わったら保存するために必ずOKを押して終了します。
書式ルールの編集画面が閉じると「条件付き書式ルールの管理」画面が開きます。
自動で値が入っているので、意外とうっかりしがちですが、必ず設定を確認、指定します。
最初に範囲選択していれば大丈夫ですが、うっかり防止の為にもここでチェック&指定する方がいいかなと思います
適用先は表であれば、色を変更したい表全体を指定します。
下記の場合はタイトル行は色を変えたくないので「A2:D9」を範囲としています。範囲は固定値なのでアルファベットと数字の前にはそれぞれ「$」を記入します。
適用先ボックスの右の矢印を押すと、範囲指定画面になるのでそちらで設定しても大丈夫です。
VBA側の設定
ショートカットで開く場合は「Alt + F11」で開きます。
下記手順を飛ばして、直接この画面に下記コードを貼っちゃってもいいです。
Private Sub Worksheet_SelectionChange(ByVal Target As Range)
Application.ScreenUpdating = True
End Sub
イベントって結構いっぱいあるので、プロシージャや引数を丸暗記は難しいので、私は下記手順で作業することが多いです
選択すると勝手に「Private Sub Worksheet_SelectionChange~」というプロシージャが作成されます。
作成されたプロシージャ内に下記コードを記入します。
Application.ScreenUpdating = True
このコードは画面の更新のONとOFFを設定するものです。
今回はTrueとしているので、画面の更新をONにするという意味です。
緑色の文字はメモなので書かなくてもOKです。
複数のシートに適用したい場合は?
条件書式は範囲ごとに指定しないといけないので共有はできませんが、VBAの方はシート単位でいちいち書くのは面倒ですね。
その場合「WorkSheet」のイベントではなく「WorkBook」のイベントに記入すると一個で済みます。
勝手に作成されるので消したいのですが、先に消すとまた選択しなおしになるので、一旦スルーします。
後で消します。
シート側で設定した時は「SelectionChange」でしたが、今回は頭に「Sheet」が付きます。
作成されたら上の「Private Sub Workbook_Open()」は消しちゃってOKです。
あっても特に問題は無いですが、使わないならサクッと消しちゃっていいです。
Application.ScreenUpdating = True
貼り付けてもいいですが、入力する場合も下記のように対象が表示されるので、結構簡単ですよ。もしコーディング勉強中なら、手打ちで慣れる方がいいと思います。
全部小文字で入れてもちゃんと頭が大文字になります!ちなみに、途中にタイプミスがあると選択が出てきません
複数シートで使用しないなら、対象シートのみでもいいかなと思ってシートに設定していますが「複数シートで使うよ」「後で増えたシートにも適用したい」ならブックに設定した方が楽です。
内容的には同じことなので、お好きな方で良いと思います
見落としがちな注意点
上記が正常に動いた場合、動いていない場合にちょっと確認してほしいことメモです。
想定した色にならない、別の条件書式の色になってしまう
複数の条件書式を設定している場合に発生します。
条件書式は優先度があります。もし選択している行は全て同じ色にしたい場合は条件書式の優先度を高くするといいと思います。
逆に、選択中でも別の条件書式を反映したい場合は優先順位を低く設定するようにします。
ブックを保存する場合は「マクロブック」にする必要がある
VBAを使用したのでマクロブックとして保存する必要があります。
この設定前が通常のExcelファイル、拡張子が「xlsx」等の場合、保存する際に「マクロ有効ブックにする必要がある」とメッセージが出るので、それに従って保存します。
まとめ
選択している行や列が色付けされることで使いやすさがアップするのでおすすめです。
作業としても特に難しいことは無いので、注意点の部分に留意してお試しください。