Вы можете получить доступ к внутреннему цвету условий пенообразования (а не к тому, какой ячейка в настоящее время является), если предположить, что это первое условие, примененное к ячейке:
Range("A1").FormatConditions(1).interior.color
Вот функция, которая будет возвращать цветовые коды для всех условных форматов, которые содержит ячейка. Он не вернет ничего, если нет условий, и если есть условие, но для него не установлен цвет, то он сообщает «нет».
Function ConditionalColor(ByVal cell As Range)
Dim colors As String
Dim i As Long
For i = 1 To Range(cell.Address).FormatConditions.count
If Range(cell.Address).FormatConditions(i).Interior.Color <> 0 Then
colors = colors & "Condition " & i & ": " & _
Range(cell.Address).FormatConditions(i).Interior.Color & vbLf
Else
colors = colors & "Condition " & i & ": None" & vbLf
End If
Next
If Len(colors) <> 0 Then
colors = Left(colors, Len(colors) - 1)
End If
ConditionalColor = colors
End Function
UPDATE :
В случае, если вам интересно (я был), цветовой код, который использует Excel, на самом деле BGR, а не RGB. Поэтому, если вы хотите преобразовать код в значения RGB, вы можете использовать это:
Function GetRGB(ByVal cell As range) As String
Dim R As String, G As String
Dim B As String, hexColor As String
hexCode = Hex(cell.Interior.Color)
'Note the order excel uses for hex is BGR.
B = Val("&H" & Mid(hexCode, 1, 2))
G = Val("&H" & Mid(hexCode, 3, 2))
R = Val("&H" & Mid(hexCode, 5, 2))
GetRGB = R & ":" & G & ":" & B
End Function