엑셀 셀 배경색 및 글자색 반환 :: GetColor 함수 사용법 총정리
엑셀 GetColor 함수 목차 바로가기
요약
엑셀 GetColor 함수는 선택한 셀의 배경색 및 글자색을 반환하는 엑셀 사용자지정 함수입니다.
명령문 구문
= GetColor ( 셀, [글자색상반환], [반환옵션] )
사용된 인수 및 변수 알아보기
인수 | 설명 |
셀 [Range] |
배경색 또는 글자색을 반환할 대상 셀입니다. 반드시 하나의 셀이여야하며, 하나 이상의 셀이 입력될 경우 함수는 #VALUE! 오류를 반환합니다. |
글자색상반환 [Boolean, 선택인수] |
기본값은 FALSE 입니다. FALSE 일 경우 셀의 배경색을 반환하며, TRUE 일 경우 글자색상을 반환합니다. |
반환옵션 [Integer, 선택인수] |
기본값은 0 이며, HEX 값을 반환합니다.
|
예제파일 다운로드
오빠두엑셀의 강의 예제파일은 여러분을 위해 자유롭게 제공하고 있습니다.
- [엑셀VBA함수] GetColor 함수 :: 셀 배경색 및 글자색 확인예제파일
상세 설명
엑셀 GetColor 함수는 지정한 셀의 글자색 및 배경색을 확인하는 사용자 지정 함수입니다. 글자색상반환여부를 선택하여 글자색 또는 배경색을 선택하여 반환할 수 있습니다. 첫번째 인수는 셀은 하나의 셀만 선택 가능하며, 하나 이상의 셀이 입력될 경우 함수는 #VALUE! 오류를 반환합니다.
엑셀은 셀의 색상변경 작업으로 함수를 재계산 할 수 없습니다. 따라서 지정한 셀의 색상이 변경 될 경우 GetColor 함수는 변경된 색으로 값이 자동갱신되지 않으므로 함수를 재입력하거나 또는 셀의 값을 변경하여 함수를 갱신합니다.
엑셀 셀 배경색 및 글자색 반환, GetColor명령문 동작원리
GetColor 명령문 전체 코드
'############################################################### '오빠두엑셀 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) - =GetColor(A1,TRUE)
' A1셀의 글자색을 HEX 값으로 반환합니다. (예: 000000) - =GetColor(A1,,1)
' A1 셀의 배경색을 RGB 값으로 반환합니다. (예: 255, 255, 255)
명령문 동작원리 단계별 알아보기
- 입력한 셀이 하나 이상일 경우 #VALUE! 오류를 반환합니다.
If rng.Columns.Count <= 1 And rng.Rows.Count <= 1 Then Else GetColor = CVErr(xlErrValue) End If
- 글자색상반환 옵션이 TRUE 일 경우 글자색을, FALSE일 경우 배경색을 확인합니다.
If font_color = True Then colorVal = rng.Font.Color Else colorVal = rng.Interior.Color End If
- 반환옵션에 따라 GetColor함수 결과값을 반환 후 함수를 종료합니다.
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
- =GetColor(A1)