Bạn có thể truy cập vào màu sắc nội thất trong các điều kiện fomatting (không phải những gì các tế bào hiện đang là) như vậy, giả sử có này là điều kiện đầu tiên được áp dụng trên ô:
Range("A1").FormatConditions(1).interior.color
Đây là hàm sẽ trả về mã màu cho tất cả các định dạng có điều kiện là ô chứa đựng. Nó sẽ trả lại không có gì nếu không có điều kiện, và nếu có một điều kiện nhưng không có màu sắc được thiết lập cho nó, sau đó nó sẽ cho bạn biết "không".
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
CẬP NHẬT: Trong trường hợp bạn tò mò (Tôi là), mã màu mà Excel sử dụng thực sự là BGR, không RGB. Vì vậy, nếu bạn muốn chuyển đổi mã để các giá trị RGB, bạn có thể sử dụng này:
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
Xem tại đây: http://stackoverflow.com/questions/996384/excel-2007-conditional-formatting-how-to-get-cell-color – RBarryYoung