Excel VBA 指定した値を含むデータのセルに色をつける

スポンサーリンク

指定した値を含むデータのセルに色をつける方法

Inputbox【インプット】ボックス関数を使用して、ユーザーから受け取った文字列が含まれるデータをデータ範囲から検索して、そのセルに目印として色を付けるコードについて解説します。

VBAでの「置換え」機能を表すRange【レンジ】オブジェクトのReplace【リプレイス】メソッドを使用し、検索内容を完全一致にするか部分一致にするかを設定する引数LookAt【ルックアット】に部分一致を表す定数を指定し、置換えの書式を設定するかしないかを設定する引数ReplaceFormat【リプレイスフォーマット】にTrueを指定して、書式を設定するに指定します。このとき、文字の置換えは行いません。置換える書式は、Application【アプリケーション】オブジェクトのReplaceFormat【リプレイスフォーマット】プロパティで取得した置き換え後の書式を表すCellFormat【セルフォーマット】オブジェクトを取得して置換え後の書式を設定します。

ピリオド「.」が含まれる数値データのセルに色を付ける実行例

「の」が含まれる文字列のセルに色を付ける実行例

全角スペースが含まれる文字列のセルに色を付ける実行例

コードと解説

Sub 抽出色()
Dim 検索文字 As String
  検索文字 = InputBox("検索する文字列を入力してください。")
  Application.ReplaceFormat.Clear
  Application.ReplaceFormat.Interior.ColorIndex = 3
  Range("A1").CurrentRegion.Replace 検索文字, "", LookAt:=xlPart, ReplaceFormat:=True
  Application.ReplaceFormat.Clear
End Sub

2行目【Dim 検索文字 As String】
InputBox【インプットボックス】関数で受け取る、検索文字列を格納する変数「検索文字」を文字列型(String)で宣言します。


3行目【検索文字 = InputBox(“検索する文字列を入力してください。”)】
InputBox【インプットボックス】関数を使用して、ユーザーに検索する文字列を入力してもらい、変数「検索文字」に代入します。


4行目【Application.ReplaceFormat.Clear】
Application【アプリケーション】オブジェクトのReplaceFormat【リプレイスフォーマット】プロパティを使用して、置換え後の書式設定を表すCellFormat【セルフォーマット】オブジェクトを取得し、Clear【クリア】メソッドで現在設定されているかもしれない置換え後の書式設定を削除します。


5行目【Application.ReplaceFormat.Interior.ColorIndex = 3】
Application【アプリケーション】オブジェクトのReplaceFormat【リプレイスフォーマット】プロパティを使用して、置換え後の書式設定を表すCellFormat【セルフォーマット】オブジェクトを取得し、Interior【インテリア】プロパティで取得した塗りつぶし属性を表すInterior【インテリア】オブジェクトを取得して色を設定するColorIndex 【カラーインデックス】プロパティに赤を表す3を指定します。


6行目【Range(“A1”).CurrentRegion.Replace 検索文字, “”, LookAt:=xlPart, ReplaceFormat:=True】
Raneg【レンジ】オブジェクトのCurrentRegion【カレントリージョン】プロパティでA1セルから始まるデータ範囲を参照して、Range【レンジ】オブジェクトの置換えを表すReplace【リプレイス】メソッドを実行します。

検索する文字列を設定する引数What【ワット】には、変数「検索文字」を指定し、置換え後の文字列を設定する引数Replacement【リプレイスメント】には、文字列を置き換えないので、長さ0の文字列「””」を指定します。

検索内容を完全一致にするか部分一致にするかを設定する引数LookAt【ルックアット】に部分一致を表す定数「xlPart」を指定し、置換えの書式を設定するかしないかを設定する引数ReplaceFormat【リプレイスフォーマット】に書式の設定を表すTrueを指定します。


7行目【Application.ReplaceFormat.Clear】
置換え後の書式を設定した場合、その書式設定が以降も残ってしますので、Application【アプリケーション】オブジェクトのReplaceFormat【リプレイスフォーマット】プロパティを使用して、置換え後の書式設定を表すCellFormat【セルフォーマット】を取得し、Clear【クリア】メソッドを使用して設定した置換え後の書式設定を削除します。


以上で、指定した値を含むデータのセルに色をつける方法についての解説を終了します。ありがとうございました。

スポンサーリンク

関連記事・広告