小技集

トップ > 小技集 > 記事
小技集一覧へ
限定コンテンツ一覧へ



2024年2月9日【ID:0】

メンバー限定

【ExcelVBA】選択した行を自動で色付け


以下のように指定した範囲(セルB2~F13)に関して、選択している行全体を色付けする方法について解説していきます。
こちらで作成したファイルは、記事の最後にて配布しています。

このような仕組みを実現するには、条件付き書式を活用します。
条件付き書式とは、指定した条件を満たしている時に、指定したセルの書式を変更するという機能になります。
色を設定する条件を考えると以下のようになります。

・現在選択している行番号と、対象の行番号が一致する場合

少しイメージが難しいかもですが、例えば、セルB2に以下のような式が設定されているとします。

=現在選択している行番号=ROW(B2)
// 「現在選択している行番号」は、実際には別の数式が入ります。

ROW関数では、引数に指定したセルの行番号を取得することができます。
そのため、2行目のセルのいずれかが選択されている時に、この条件を満たすことになります。

この条件を満たしている時に、対象のセルの背景色を変える必要があるため、この条件の数式を条件付き書式に設定する必要があります。


「現在選択している行番号」を取得するには、CELL関数を活用します。
CELL関数の引数に以下のように指定することで、現在選択しているセルの行番号を取得することができます。

=CELL("row")

複数のセルが選択されている場合は、アクティブになっているセルの行番号が取得されます。

先ほどの条件を表す数式にCELL関数を用いると、以下のようになります。

=CELL("row")=ROW(B2)

この数式を、条件付き書式にて設定していきます。

対象の範囲を選択し、[ホーム]タブの中の[条件付き書式]の[新しいルール]を選択します。

条件付き書式の設定画面にて、[数式を使用して、…]を選択し、先ほどの数式を入力し、書式を設定します。

=CELL("row")=ROW(B2)
// 「B2」はアクティブセルのアドレスにする

このように設定することで、対象の範囲内に関して、選択している行全体を色付けすることができます。

ただ、条件付き書式の設定のみですと、色付けを反映するには、セルを編集するか数式を更新する必要があります。
その理由は、CELL関数で取得される値は、数式が更新されたタイミングに、値が更新されるためです。

そのため、対象の範囲が選択された場合は、自動で数式を更新する仕組みを実現する必要があります。

セルの選択と同時に数式を更新する仕組みを実現するには、シートモジュールを活用します。
[開発]タブの中の[Visual Basic]を選択し、表示された画面(VBE)から対象のシートモジュールを開きます。
※VBEに[プロジェクト]が表示されていない場合は、VBEの[表示]タブより表示することができます。
 「Option Explicit」は設定によっては表示されませんが、表示がなくても問題ありません。

次に、[General]と表示されているリストから、[Worksheet]を選択します。
[Worksheet]を選択することで、Worksheet_SelectionChangeというプロシージャが表示されます。
万が一、別のプロシージャが表示された場合は、右隣りのリストから[SelectionChange]を選択します。

このプロシージャは、該当するシートのセルが選択されたタイミングに自動で実行されます。
そのため、以下のように「数式を更新する」という内容を記述するだけで、セルの選択と同時に数式を更新させることができます。

ただ、この状態ですと、常に数式が更新されることになるため、Excelファイル自体の処理が重くなる原因に繋がります。
そのため、該当する範囲を選択した場合に関してのみ、数式が更新されるように記述する必要があります。

そのためには、以下のように記述します。


続きはIT予備メンバー限定です。

メンバー限定コンテンツになります。




IT予備メンバーページと連携することで内容を確認することができます。

メンバーとは


すでにメンバーの方は、
ログインして連携してから、こちらを更新すると閲覧できます。
※連携しても確認ができない場合は、少し時間を置いてご確認ください。

ログイン(新しいタブ)
※[ログイン]→[設定]→[IT予備-連携]で連携できます


パソコンで開く場合は、記事の最後に「リンクコピー」があるためご活用ください。


メンバー募集
1分で読める小技集 1分で読める小技集





リンクの共有はこちらから行えます。

  リンクコピー Twitter Facebook はてなブックマーク Pocket
トップ > 小技集 > 記事
小技集一覧へ
限定コンテンツ一覧へ


- 人気の記事 -



- メンバー限定 [一覧] -



サイト累計閲覧数

3617502

有料動画講座
(買い切り)

Excel完全制覇


ちょっとした機能 便利ツール
【小技集】

【Excel】リンク付きの目次を簡単に作成

【Word】好みの「組み文字」を入力する方法

【Excel】数式が入力されているセルを自動で色付けする

【Excel】選択した範囲内の改行を一括削除

【ExcelVBA】数式「AND(3,4)」とVBA「3 And 4」は違う!?

【ExcelVBA】表の先頭にデータを追加する機能(ノーコード)

【Excel】○○IFS関数を使ってOR条件で求める

【Excel】目的のデータを効率的に検索

【Excel】ピボットテーブルで集計値の大きい順にする

【Excel】ピボットテーブルの意外と知られていない小技3選

【Excel】カレンダーに休日を反映(VLOOKUP不要)

【Excel】VBAとOfficeスクリプトのコードを比較(対象行の削除)

【Excel】ピボットテーブルの表示形式

【ExcelVBA】記入時刻を自動入力

【Excel】必要な範囲以外を非表示にする

【Word】指定した位置でページを分ける

【Excel】条件付き書式で検索機能を作成

【Excel】「選択範囲内で中央」の本当の使い道

【Excel】指定時間を自動で色付け「シフト表」

【Excel】連続した文字の色を自動で薄くする

【ExcelVBA】Functionで複数の戻り値を設定

【Excel】今日の日付の行を色付け

【Excel】四半期を簡単な数式で求める

【Excel】表の最終行を瞬時に選択

【Excel】英単語のスペルチェック機能





一覧ページへ

トップ > 小技集 > 記事
小技集一覧へ
限定コンテンツ一覧へ