이 페이지에서
구문
= GetColor ( 셀, [글자색상반환], [반환옵션] )
인수구분
형식 설명
셀
필수
Range
배경색 또는 글자색을 반환할 대상 셀입니다.
반드시 하나의 셀이어야 하며, 하나 이상의 셀이 입력될 경우 #VALUE! 오류를 반환합니다.
글자색상반환
선택
Boolean
TRUE 일 경우 글자색을, FALSE 일 경우 셀의 배경색을 반환합니다. 기본값은 FALSE 입니다.
반환옵션
선택
Integer
반환할 색상 값의 형식을 지정합니다. 기본값은 0 이며 HEX 값을 반환합니다.
0 은 HEX 값(예: FFFFFF), 1 은 RGB 값(예: 255, 255, 255), -1 은 정수 값을 반환합니다.
마스터 코드
복사한 코드는 VBA 편집기(Alt + F11) 새 모듈에 붙여넣어 사용하세요'###############################################################
'오빠두엑셀 VBA 사용자지정함수 (https://www.oppadu.com)
'▶ GetColor 함수
'▶ 셀의 배경색 및 글자색을 반환 합니다.
'▶ 인수 설명
'_____________rng : 차원을 검토할 배열을 입력합니다.
'_____________font_color : TRUE일 경우 글꼴색상을 반환합니다.
'_____________return_type : 0 - HEX, 양수 - RGB, 음수 - 엑셀기본(정수)
'###############################################################
Function GetColor(rng As Range, Optional font_color As Boolean = False, Optional return_type As Integer = 0) As Variant
Dim colorVal As Variant
If rng.Columns.Count <= 1 And rng.Rows.Count <= 1 Then
If font_color = True Then
colorVal = rng.Font.Color
Else
colorVal = rng.Interior.Color
End If
Select Case Sgn(return_type)
Case 0
GetColor = Hex(colorVal)
Case 1
GetColor = (colorVal Mod 256) & ", " & ((colorVal \ 256) Mod 256) & ", " & (colorVal \ 65536)
Case Else
GetColor = colorVal
End Select
Else
GetColor = CVErr(xlErrValue)
End If
End Function
활용 예제
기본 사용 — 셀 배경색 반환
= GetColor ( A1 )
'// A1셀의 배경색을 HEX 값으로 반환합니다. (예: FFFFFF)
글자색 반환 · RGB 형식으로 반환
= GetColor ( A1, TRUE )
'// A1셀의 글자색을 HEX 값으로 반환합니다. (예: 000000)
= GetColor ( A1, , 1 )
'// A1 셀의 배경색을 RGB 값으로 반환합니다. (예: 255, 255, 255)
안내사항
엑셀은 셀의 색상 변경으로 함수를 재계산하지 않으므로, 색을 바꾼 뒤에는 함수를 다시 입력하거나 셀 값을 변경해 결과를 갱신해야 합니다.
-항상 감사히 보고있습니다
위 글과 같이 바로 반영되지 않으나, 혹시 글자색이 변했을때 바로 반영되게 하는 방법이 있을지 궁금해 댓글남겨봅니다 감사합니다
또는 함수를 복사해서 재입력해주는 vba를 하나 짜는게 빠를까요?
를 사용해보세요.
일반 VBA 코드에서는 사용이 가능합니다.
아래와 같이 전체 코드를 작성 후, =COLOR(셀) 함수로 사용해보시길 바랍니다. :)