エクセル関数応用
選択行の色を変える(条件付き書式,Worksheet_SelectionChange)

Excel関数の解説、関数サンプルと高等テクニック
公開日:2013-09-07 最終更新日:2013-09-07

選択行の色を変える(条件付き書式,Worksheet_SelectionChange)


クリックまたはカーソルキーで選択セルを移動した場合に、


当該行の色を変更して目立たせたせる方法で、

条件付き書式と、シートのイベントであるWorksheet_SelectionChangeを使用します。

Worksheet_SelectionChangeイベントのみでやろうとすると、

直前の選択行の色を元に戻す必要がある為、

未選択行の色を戻す必要があり、事前にセルに色を付けたりできなくなってしまいます。

そこで、条件付き書式と、Worksheet_SelectionChangeイベントを組み合わせる事で、

自動的に元の色にもどるようにすることが出来ます。


条件付き書式

設定したいシートの設定したい範囲を選んで、


Excel2007以降

「ホーム」→「条件付き書式」→「新しいルール」→「数式を利用して、書式設定するセルを決定」

数式欄に、

=CELL("row")=ROW()

エクセル Excel サンプル画像

Excel2003

「書式」→「条件付き書式」→「数式が」

数式欄に、

=CELL("row")=ROW()

エクセル Excel サンプル画像


これだけですと、シートの再計算が行われると、


選択行の色が変更されるのが確認できるはずです。

再計算させるには、F9 または 適当なセルでDeleteキー押下で再計算されます。

そこで、選択セルが変更されたら、再計算されるようにすれば良い事になります。


Worksheet_SelectionChangeイベント

Visual Basic Editor(Alt+F11)を開いきます。

設定するシートを、ブロジェクトウインドウ(通常は左上のウインドウ)を、

ダブルクリック または 右クリックでコード表示

エクセル Excel サンプル画像

ここに、



Private Sub Worksheet_SelectionChange(ByVal Target As Range)
  Application.ScreenUpdating = True
End Sub


これで、選択行の色が変わるようになったはずです。


ここでは、
Application.ScreenUpdating = True

これは、実際は何でも良く、再計算がされさえすれば良いのです。

なので、

Application.Calculation = xlCalculationAutomatic

これでも、なんら問題はありません。

まあ、一番影響のなさそうなものが、ScreenUpdatingかなーと言うだけです。

設定自体は、さほど難しいものではありませんので、

マクロ等が分からない方でも使えると思います。

個人的な意見としては、標準機能が合っても良いとは思いますね。

アクティブなセルの、列見出し・行見出しは色が変わりますので、

これを拡張してくれれば良いのではと思っています。

もっとも、Excel95までは、列見出し・行見出しの色も変わらなかったと記憶しています。



同じテーマ「エクセル関数応用」の記事

グラフで特定の横軸の色を変更し基準線を引く
OFFSET関数 解説・応用・使用例
MATCH関数 解説・応用・使用例
選択行の色を変える(条件付き書式,Worksheet_SelectionChange)
他ブックを参照できる関数、他ブックを参照できない関数
時間計算で困ったときの確実な対処方法
VLOOKUP 左側の列を取得(MATCH,INDEX,OFFSET)
SUMIF関数の良くある間違い
論理式とは条件式とは(IF関数,AND関数,OR関数)
先頭の数値、最後の数値を取り出す
最後の空白(や指定文字)以降の文字を取り出す


新着記事NEW ・・・新着記事一覧を見る

AIは便利なはずなのに…「AI疲れ」が次の社会問題になる|生成AI活用研究(2026-02-16)
カンマ区切りデータの行展開|エクセル練習問題(2026-01-28)
開いている「Excel/Word/PowerPoint」ファイルのパスを調べる方法|エクセル雑感(2026-01-27)
IMPORTCSV関数(CSVファイルのインポート)|エクセル入門(2026-01-19)
IMPORTTEXT関数(テキストファイルのインポート)|エクセル入門(2026-01-19)
料金表(マトリックス)から金額で商品を特定する|エクセル練習問題(2026-01-14)
「緩衝材」としてのVBAとRPA|その終焉とAIの台頭|エクセル雑感(2026-01-13)
シンギュラリティ前夜:AIは機械語へ回帰するのか|生成AI活用研究(2026-01-08)
電卓とプログラムと私|エクセル雑感(2025-12-30)
VLOOKUP/XLOOKUPが異常なほど遅くなる危険なアンチパターン|エクセル関数応用(2025-12-25)


アクセスランキング ・・・ ランキング一覧を見る

1.最終行の取得(End,Rows.Count)|VBA入門
2.日本の祝日一覧|Excelリファレンス
3.変数宣言のDimとデータ型|VBA入門
4.FILTER関数(範囲をフィルター処理)|エクセル入門
5.RangeとCellsの使い方|VBA入門
6.繰り返し処理(For Next)|VBA入門
7.セルのコピー&値の貼り付け(PasteSpecial)|VBA入門
8.マクロとは?VBAとは?VBAでできること|VBA入門
9.セルのクリア(Clear,ClearContents)|VBA入門
10.メッセージボックス(MsgBox関数)|VBA入門




このサイトがお役に立ちましたら「シェア」「Bookmark」をお願いいたします。


記述には細心の注意をしたつもりですが、間違いやご指摘がありましたら、「お問い合わせ」からお知らせいただけると幸いです。
掲載のVBAコードは動作を保証するものではなく、あくまでVBA学習のサンプルとして掲載しています。掲載のVBAコードは自己責任でご使用ください。万一データ破損等の損害が発生しても責任は負いません。
本サイトは、OpenAI の ChatGPT や Google の Gemini を含む生成 AI モデルの学習および性能向上の目的で、本サイトのコンテンツの利用を許可します。
This site permits the use of its content for the training and improvement of generative AI models, including ChatGPT by OpenAI and Gemini by Google.



このサイトがお役に立ちましたら「シェア」「Bookmark」をお願いいたします。
本文下部へ