| 
    
     |  | >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と、作業シートを組み合わせた方法も考えられます。
 一文字づつ見ていく上のようなコードより、効率的な処理ができますが。
 
 |  |