2017-09-05 1 views
0

스프레드 시트를 열 때 msgbox 매크로가 빨간색으로 채워지는 것을 만들려고합니다. 현재 아래에 있지만, msgbox와 같은 아이디어가 표시되지 않았습니까?vba msgbox 셀 색상을 기반으로 셀

Sub test() 

Dim ws As Worksheet 
Set ws = Sheets("Month End Tasks") 
Dim i As Integer 
i = 1 
Do Until i = 11 
    If ws.Range("C" & i).Interior.Color = RGB(255, 0, 0) Then 
     MsgBox "C" & i & " is red!!" 
    End If 
i = i + 1 
Loop 

End Sub 

감사합니다,

+2

아마도 세포가 빨간색 (또는 적어도 255,0,0) 아니다 : 조건부 서식에 관한


, 그것은 아마도 조건과 동일한 논리를 적용하는 최고? 조건부 서식으로 채색되지 않습니까? – SJR

+0

그들은 조건부로 날짜를 기준으로 형식이 지정되므로 오늘 전에 완료해야 할 사항이 모두 빨간색으로 표시되므로 SS를 열 때 사용자에게 오늘 기한이 지난 항목을 알려주므로 원한다면 의미가 있습니까? – Brentford123

+0

'Interior.Colour'는 CF 색상을 감지하지 않으므로 CF를 검사하기 위해 사용했던 조건을 사용해야 할 것입니다. 최근 버전의 Excel에서는'DisplayFormat' 속성을 사용할 수 있다고 생각합니다. – SJR

답변

2

시도는 다음과 같은 사용, C11에 C1의 RGB 색상을 볼 수 있습니다 :

Sub WriteCellColor() 

    Dim ws  As Worksheet 
    Dim i  As Long 

    Set ws = ActiveSheet 

    i = 1 
    Do Until i = 11 
     Debug.Print ws.Range("C" & i).Address 
     Debug.Print getRGB2(ws.Range("C" & i).Interior.Color) 
     i = i + 1 
    Loop 

End Sub 

Public Function getRGB2(l_long) As String 

    Dim c As Long 
    Dim R As Long 
    Dim G As Long 
    Dim B As Long 

    c = l_long 
    R = c Mod 256 
    G = c \ 256 Mod 256 
    B = c \ 65536 Mod 256 
    getRGB2 = "R=" & R & ", G=" & G & ", B=" & B 

End Function 

그것은 직접 실행 창에 RGB 색상의 요약을 인쇄 할 것이다. 이처럼 :

enter image description here

다음 :

$C$1 
R=255, G=0, B=0 
$C$2 
R=255, G=255, B=0 

더 쉬운 방법은 색으로 셀을 선택하고

셀 서식> 패턴> 색상> 사용자 정의 눌러 (02)입니다 RGB 값이 표시됩니다. Excel 2007 conditional formatting - how to get cell color?