|
>1つのセルに長文
ということから推測すると、セル内の文字色が全て赤になっている
のではなく、任意の文字だけを赤にしているのでしょうか ?
それなら一文字づつチェックしていくしかないと思います。
サンプルコードは、グローバル変数を使った以下のようなものです。
モジュールの先頭から入れて、対象のシートを開いて試してみて下さい。
Private ColCk As Boolean
Sub Change_FColor()
Dim C As Range
Dim i As Long, ColA As Long, ColB As Long
If ColCk Then
ColA = 2: ColB = 3
Else
ColA = 3: ColB = 2
End If
For Each C In Cells.SpecialCells(2)
For i = 1 To Len(C.Value)
With C.Characters(i, 1).Font
If .ColorIndex = ColA Then .ColorIndex = ColB
End With
Next i
Next
ColCk = Not ColCk
End Sub
一つのセルの文字色が全部赤になっている場合は、Excel4マクロ関数
のGET.CELLと、作業シートを組み合わせた方法も考えられます。
一文字づつ見ていく上のようなコードより、効率的な処理ができますが。
|
|