おかげRGAように変更されます。私はあなたが以下に書いたものを使った。一番きれいではありませんが、それはテキストに対応する色で私のシート上の各改行を色付けることができます。私はそれが機能するために値に私の公式を変換しなければならなかった。もう一度ありがとう、私はあなたなしでどこから始めるべきかの手がかりを持っていなかったでしょう。
Sub ColourText2()
TurnOff
Dim startRed As Integer, startChar As Integer, startAmber As Integer, startGreen As Integer, x As Integer, i As Integer, startLB As Integer, endLB As Integer, iCount As Integer
Dim searchString As String, searchChar As String
Dim clr As Long
Dim cell As Range
For x = 6 To 22
iCount = Worksheets("MySheet").Range("D" & x & ":S" & x).Count
Range("C" & x).Select
Application.CutCopyMode = False
Selection.AutoFill Destination:=Range("C" & x & ":S" & x), Type:=xlFillDefault
Range("C" & x & ":S" & x).Select
Worksheets("MySheet").Calculate
Range("D" & x & ":S" & x).Select
Selection.Copy
Selection.PasteSpecial Paste:=xlPasteValues, Operation:=xlNone, SkipBlanks _
:=False, Transpose:=False
For Each cell In Worksheets("MySheet").Range("D" & x & ":S" & x)
searchString = cell
Application.StatusBar = i & "of: " & iCount
startChar = 1
For startLB = 1 To Len(cell)
cell.Select
If startChar = 1 Then
startLB = 1
endLB = 1
Else
startLB = InStr(endLB, searchString, Chr(10), vbTextCompare)
End If
startGreen = InStr(endLB, searchString, "green", vbTextCompare)
'MsgBox startGreen
startAmber = InStr(endLB, searchString, "amber", vbTextCompare)
'MsgBox startAmber
startRed = InStr(endLB, searchString, "red", vbTextCompare)
'MsgBox startRed
endLB = InStr(endLB + 1, searchString, Chr(10), vbTextCompare)
If startGreen < endLB And startGreen <> 0 Then
startChar = startGreen
cell.Characters(startLB, endLB - startLB).Font.Color = RGB(0, 153, 0)
ElseIf startAmber < endLB And startAmber <> 0 Then
startChar = startAmber
cell.Characters(startLB, endLB - startLB).Font.Color = RGB(226, 107, 10)
cell.Characters(startLB, endLB - startLB).Font.Underline = xlUnderlineStyleSingle
ElseIf startRed < endLB And startRed <> 0 Then
startChar = startRed
cell.Characters(startLB, endLB - startLB).Font.Color = RGB(255, 0, 0)
cell.Characters(startLB, endLB - startLB).Font.Underline = xlUnderlineStyleSingle
Else
GoTo MoveOn
End If
If startChar = 0 Then GoTo MoveOn
MoveOn:
Next
Next cell
x = x + 1
Next
TurnON
Application.StatusBar = False
MsgBox "finished"
End Sub
私が最初に掲載したコードは間違った文字を指していたことに注意してください。しかし、このエラーは修正されました – RGA