ここにも列や,行に着色する方法は載っています。
↓
http://www.relief.jp/itnote/archives/001406.php
が,色々検索しても,アクティブセルに着色するのは意外と検索しても出てきません。
なので書いておきます。
条件付き書式にて設定後,VBAで色を更新する方法。
A.ブック全体に設定したい場合
VBAで「ThisWorkbook」に以下を書いておきましょう。
Private Sub Workbook_SheetSelectionChange(ByVal Sh As Object, ByVal Target As Range)
Application.ScreenUpdating = True
End Sub
B.そのシートのみに設定したい場合
設定したいシートの「シートモジュール」に以下を書いておきましょう。
Private Sub Worksheet_SelectionChange(ByVal Target As Range)
Application.ScreenUpdating = True
End Sub
ここから条件付き書式の設定
[数式を使用して,書式設定するセルを決定]を指定する。
1.行に着色
「=CELL("row")=ROW()」
2.列に着色
「=CELL("col")=COLUMN()」
3.行と列に着色
「=OR(CELL("row")=ROW(), CELL("col")=COLUMN())」
4.アクティブセルに着色
「=AND(CELL("row")=ROW(), CELL("col")=COLUMN())」
アクティブセルは単に,行と列に着色の条件をANDにしただけですね。
行とアクティブセルの複合とかも,条件付き書式を2つ書くことで出来ます。
意外と検索しても出てこないので,参考にでもなれば。
ここからはマクロごり押しの着色方法です。
A6からZ105までの行とアクティブセルへ着色する方法です。
シートモジュールへ記入します。
あくまで例ですので,用途に合わせて色々改変してみてはいかがでしょうか。
ちなみにセルを移動する度に色を塗り直すようにしないとダメです。
元々この範囲に色が指定されている場合は毎回塗り直しましょう。
上記の条件付き書式と比べたところ,どちらも重さ的にはほとんど変わらないようです。
Private Sub Worksheet_SelectionChange(ByVal Target As Range)
On Error Resume Next
With ActiveSheet
If Target.Row > 5 And Target.Row < 106 And Target.Column < 27 Then
.Range("A6:Z205").Interior.ColorIndex = xlNone
.Range("A" & (Target.Row) & ":Z" & (Target.Row)).Interior.ColorIndex = 16
Target.Cells(1, 1).Interior.ColorIndex = 36
Else
.Range("A6:Z105").Interior.ColorIndex = xlNone
End If
End With
On Error GoTo 0
End Sub