言語切り替え

Excel VBA|選択中のセルの行と列をハイライトする方法

エクセルの管理表などでデーターが増えてくると、行や列を間違えてしまうことがありますよね!
今回は、そんな悩みを解決する方法を紹介します。
この方法を使えば、以下のように選択したセルの行や列がハイライトするので、かなり見やすくなります。

\行をハイライト/

行をハイライト

\列をハイライト/

列をハイライト

\行と列をハイライト/

行と列をハイライト

その方法は「条件付き書式」の設定と、簡単なマクロを組むだけです。

エクセル初心者の方でも簡単に設定できるように、使用する数式やコードはコピー&ペーストができるようにしてあります。

それでは、順番に解説していきますので、新しいExcelを立ち上げて始めていきましょう。

「条件付き書式」の設定

エクセルを立ち上げて、リボン「ホーム」>「スタイル」>「条件付き書式」をクリックして「条件付き書式のリスト」を表示させます。

①ホーム画面

①条件付き書式をクリック

適用範囲は後ほど設定しますので、この段階では任意のセルを選択した状態で問題はありません。

条件付き書式のリストの中から「ルールの管理」をクリックして「条件付きルールの管理」を開きます。

②条件付き書式リスト

②ルールの管理をクリック

「新規ルール」をクリックして「新しい書式ルール」を開きます。

③条件付き書式ルールの管理

③新規ルールをクリック

「新しい書式ルール」の画面が表示されたら、上段の「ルールの種類を選択してください」の一覧から「数式を使用して、書式設定するセルを決定」を選択します。

すると、下段が「ルールの内容を編集してください」という「編集画面」に切り替わります。

上段の「次の数式を満たす場合に値を書式設定」はハイライトさせる行や列を指定する数式を記入する欄で、下段のプレビューはハイライトの色などをを指定する欄です。
④新しい書式ルール(正)

④新しい書式ルール

⑤次の書式を満たす場合に値を書式設定(正)

⑤次の書式を満たす場合に値を書式設定

次に、この画面で新しいルールを作っていきます。

「次の数式を満たす場合に値を書式設定」に数式を書き込む

この欄に書き込む数式によって「行」または「列」もしくは「行と列の両方」と、ハイライトさせる位置が決まりますので、以下の条件の中から設定したい数式を選んでください。

【ハイライトさせる条件と数式】
条件1「行をハイライトさせる」数式
=CELL("ROW")=ROW()
条件2「列をハイライトさせる」数式
=CELL("COL")=COLUMN()
条件3「行と列の両方をハイライトさせる」数式
=OR(CELL("ROW")=ROW(), CELL("COL")=COLUMN())

 「次の数式を満たす場合に値を書式設定」の欄に「条件1~3」の何れかに該当する数式を貼り付けてください。(説明は「条件3」に該当する数式を使用しています)

⑥行と列をハイライト

⑥行と列をハイライトさせる数式

これで、ハイライトさせる行や列が指定されました。次にハイライト(背景)の色を決めます。

ハイライトの色を選ぶ

「書式」をクリックして「セルの書式設定」を開きます。

⑦「書式」ボタンをクリック

⑦書式ボタンをクリック

「セルの書式設定」の画面で「塗りつぶし」のタブを選択し、好みの背景色を選んで「OK」をクリックします。

⑧背景色を選ぶ

⑧背景色を選ぶ

今回の説明では背景色だけを設定しますが、罫線を引いたり文字の太さや色を変えたりすることもできます。

⑨ 「新しい書式ルール」の画面にもどりますので、ルール編集の欄を確認して間違いがなければ「OK」をクリックします。

⑨書式ルールの確認

⑨書式ルールの確認

⑩ 「条件付き書式の管理」画面に戻ります。この段階でルールと書式は編集済ですが、適用する範囲が指定できていません。

⑩数式と書式の設定完了

⑩ルールと書式の設定完了

次に、設定したルール書式を適用する範囲を指定します。

適用する範囲の指定

⑪ 「適用先」欄の右側にある「⇓」ボタンをクリックします。

⑪適用先の矢印ボタンをクリック

⑪適用先の矢印ボタンをクリック

⑫ 適用先(セルの選択)が指定できる画面に切り替わりますので、シート左上の「すべて選択」をクリックして、シート全体を指定します。

⑫すべてのセルを選択

⑫すべてのセルを選択

「ctrl」を押しながら「A」を押すとすべてのセルが選択できます。
⑬ 「条件付き書式ルールの管理」画面に戻りますので、以下のようにすべてのセルが選択できていることを確認して「OK」をクリックします。
⑬設定完了

⑬設定完了

以上で「条件付き書式」の設定は完了です。

次に、セルを移動するたびに色をつける命令のマクロを組んでいきます。

マクロとは、複数の操作をまとめて必要に応じて呼び出せるようにする機能で、ExcelではVBAというプログラム言語を使っています。

VBA【 Visual Basic for Applications 】 とは、Microsoft Officeに含まれるアプリケーションソフトの拡張機能で、利用者が簡易なプログラムを記述して実行することで複雑な処理の自動化などを行なうことができるもの。 また、そのために用意されたプログラミング言語。

VBA|マクロを組む

⑭ エクセルのリボン「開発」から「Visual Basic」をクリックして「Microsoft Visual Basic for Applications」を開きます。

⑭Microsoft Visual Basic for Applications

⑭Microsoft Visual Basic for Applications

「Alt」を押しながら「F11」を押しても「Microsoft Visual Basic for Applications」が開きます。

⑮ 「Microsoft Visual Basic for Applications」が開いたら、左側のナビゲーションから「ThisWorkbook」をダブルクリックします。

すると「ThisWorkbook(コード)」というウィンドウが表示されます。

⑮ThisWorkbook(コード)(正)

⑮ThisWorkbook(コード)

「ThisWorkbook(コード)」の中に以下のコードを貼り付けてください。

Private Sub Workbook_SheetSelectionChange(ByVal Sh As Object, ByVal Target As Range)
    Application.ScreenUpdating = True
End Sub

⑰ フロッピーディスクのマークをクリックして保存します。(「Ctrl」+「S」でも保存できます)

⑱ 以下の選択画面が出てきますので「いいえ」をクリックします。

⑱「いいえ」をクリック(正)

⑱「いいえ」をクリック

⑲ 保存ダイアログが出てきますので「ファイルの種類」を「Excelマクロ有効ブック(*.xlsm)」にして保存します。(ファイル名には制約がありませんので自由に名前を付けて保存してください)

⑲マクロ有効ブックで保存

⑲マクロ有効ブックで保存

保存が完了したら「Microsoft Visual Basic for Applications」の右上の「×」ボタンを押して閉じます。

以上で、設定が完了しました。

この設定でうまく動作しない場合は「alt」+「F11」で「Visual Basic」を開き、もう一度上書きしてみて下さい。

それでも、うまく動作しない場合は「数式」または「コード」を見直してください。

最後に実践で大変役に立つ、行と列の色を使い分ける方法を紹介します。

行と列の色を分ける方法

今まで紹介してきた「条件付き書式」の設定では行と列の色を分けることはできませんが、「条件付き書式」を2種類にすると行と列の色を分けることができます。

行と列を別の色でハイライト

行と列を別の色でハイライト

行をハイライトさせる「条件付き書式」と列をハイライトさせる「条件付き書式」を作る

この方法は「条件付き書式ルールの管理」画面から2種類の「新規ルール」を作るというもので、以下のように設定します。

行と列を個別に設定

この例では、上段が行をハイライトする「条件付き書式」で下段が列をハイライトする「条件付き書式」になっています。

具体的な方法は、それぞれの「次の数式を満たす場合に値を書式設定」に以下の数式を貼り付け、背景色と適用範囲を設定します。(設定の手順は“「条件付き書式」の設定”と同じです)

「次の数式を満たす場合に値を書式設定」に貼り付ける数式
上段の数式(行をハイライト)
=CELL("ROW")=ROW()
下段の数式(列をハイライト)
=CELL("COL")=COLUMN()