強調表示させる
下の図を見てもらったほうが早いと思いますが、同一シート内の同一値セルがあれば強調表示させてみます。
このようなデータがあります。一見しただけでは「123」というデータがどこにあるのか探しにくいです。そこでA1を選択すると、それと同じ値を強調表示させるようにします。
A2セルに選択を変えるだけでこうなります。
Worksheet_SelectionChange
Worksheet_SelectionChange・・・ワークシートで選択しているセルに変更があれば毎回この処理を行う。
これを使用し、セル選択だけで強調表示の変更を処理します。
VBE画面のプロジェクトエクスプローラで実行したいシートへ下記のコードを記入します。
Private Sub Worksheet_SelectionChange(ByVal Target As Range)
Dim myRange As Range
If Target.Cells.Count > 1 Then Exit Sub ・・・①
Application.ScreenUpdating = False
For Each myRange In ActiveSheet.UsedRange ・・・②
With myRange
.Borders(xlEdgeLeft).LineStyle = xlNone
.Borders(xlEdgeTop).LineStyle = xlNone
.Borders(xlEdgeBottom).LineStyle = xlNone
.Borders(xlEdgeRight).LineStyle = xlNone
End With
Next
If Target.Value = "" Then Exit Sub
If Target.Value = 0 Then Exit Sub ・・・③
For Each myRange In ActiveSheet.UsedRange ・・・④
If myRange.Value = Target.Value Then
With myRange.Borders(xlEdgeLeft)
.LineStyle = xlContinuous
.Weight = xlThin
.ColorIndex = 3
End With
With myRange.Borders(xlEdgeTop)
.LineStyle = xlContinuous
.Weight = xlThin
.ColorIndex = 3
End With
With myRange.Borders(xlEdgeBottom)
.LineStyle = xlContinuous
.Weight = xlThin
.ColorIndex = 3
End With
With myRange.Borders(xlEdgeRight)
.LineStyle = xlContinuous
.Weight = xlThin
.ColorIndex = 3
End With
End If
Next
End Sub
①・・・Target.Cells.Countとは、いくつセルを選択しているか数字を返しますので、1以上であった場合はこの処理を中止します。
②・・・ここですべてのセルの罫線を消します。
③・・・空白、もしくは0の値の場合は処理を中止します。協調選択しません。
④・・・このFor文にて選択したセル値とシート内の同じ値のセルは赤罫線で囲う処理をします。
※注意※
途中で罫線をすべて消す処理を行っていますので、もともと罫線を引いている場合は消えてしまいます。
対策としては文字色を変える事で強調表示させればいいかな・・・と思います。