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

Excel関数の解説、関数サンプルと高等テクニック
最終更新日: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 ・・・新着記事一覧を見る

練習問題32(連続数値部分を取り出し記号で連結)|VBA練習問題(3月24日)
連続数値部分を取り出し記号で連結|エクセル関数超技(3月24日)
数式バーの高さを数式の行数で自動設定|VBAサンプル集(3月21日)
LET関数(数式で変数を使う)|エクセル入門(3月21日)
スピルに対応したXSPLITユーザー定義関数(文字区切り)|VBAサンプル集(3月15日)
XMATCH関数(範囲から値を検索し一致する相対位置)|エクセル入門(3月14日)
XLOOKUP関数(範囲を検索し一致する対応項目を返す)|エクセル入門(3月14日)
VBAでシート関数使用時の配列要素数制限|VBA技術解説(3月12日)
SEQUENCE関数(連続数値)|エクセル入門(3月11日)
RANDARRAY関数(ランダム数値)|エクセル入門(3月11日)


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

1.最終行の取得(End,Rows.Count)|VBA入門
2.RangeとCellsの使い方|VBA入門
3.セルのコピー&値の貼り付け(PasteSpecial)|VBA入門
4.マクロって何?VBAって何?|VBA入門
5.変数宣言のDimとデータ型|VBA入門
6.ひらがな⇔カタカナの変換|エクセル基本操作
7.Range以外の指定方法(Cells,Rows,Columns)|VBA入門
8.繰り返し処理(For Next)|VBA入門
9.徹底解説(VLOOKUP,MATCH,INDEX,OFFSET)|エクセル関数超技
10.セルに文字を入れるとは(Range,Value)|VBA入門




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


記述には細心の注意をしたつもりですが、
間違いやご指摘がありましたら、「お問い合わせ」からお知らせいただけると幸いです。
掲載のVBAコードは動作を保証するものではなく、あくまでVBA学習のサンプルとして掲載しています。
掲載のVBAコードは自己責任でご使用ください。万一データ破損等の損害が発生しても責任は負いません。



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