엑셀 셀 글자색 및 배경색 반환 :: GetColor 함수 사용법

특정 셀의 글자색 및 배경색을 확인하는 GetColor 함수의 사용법 및 동작원리를 알아봅니다.

작성자 :
오빠두엑셀
최종 수정일 : 2020. 10. 12. 02:20
URL 복사
메모 남기기 : (9)

엑셀 셀 배경색 및 글자색 반환 :: GetColor 함수 사용법 총정리

엑셀 GetColor 함수 목차 바로가기
요약

엑셀 GetColor 함수는 선택한 셀의 배경색 및 글자색을 반환하는 엑셀 사용자지정 함수입니다.

명령문 구문
= GetColor ( 셀, [글자색상반환], [반환옵션] )
사용된 인수 및 변수 알아보기
인수 설명

[Range]
배경색 또는 글자색을 반환할 대상 셀입니다. 반드시 하나의 셀이여야하며, 하나 이상의 셀이 입력될 경우 함수는 #VALUE! 오류를 반환합니다.
글자색상반환
[Boolean, 선택인수]
기본값은 FALSE 입니다. FALSE 일 경우 셀의 배경색을 반환하며, TRUE 일 경우 글자색상을 반환합니다.
반환옵션
[Integer, 선택인수]
기본값은 0 이며, HEX 값을 반환합니다.

  • 0 : [기본값] HEX 값을 반환합니다. (예: "FFFFFF", "FFFF00" 등.. )
  • 1 : RGB 값을 반환합니다. (예: "255, 255, 255" 등.. )
  • -1 : 정수값을 반환합니다. (예: : "1677722", "65535" 등.. )

예제파일 다운로드

오빠두엑셀의 강의 예제파일은 여러분을 위해 자유롭게 제공하고 있습니다.

  • [엑셀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)
명령문 동작원리 단계별 알아보기
  1. 입력한 셀이 하나 이상일 경우 #VALUE! 오류를 반환합니다.
            If rng.Columns.Count <= 1 And rng.Rows.Count <= 1 Then
            Else
                    GetColor = CVErr(xlErrValue)
            End If
  2. 글자색상반환 옵션이 TRUE 일 경우 글자색을, FALSE일 경우 배경색을 확인합니다.
                If font_color = True Then
                    colorVal = rng.Font.Color
                Else
                    colorVal = rng.Interior.Color
                End If
  3. 반환옵션에 따라 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

관련링크 : MS 홈페이지 VBA Range.Interior 속성 설명 바로가기(영문)

5 5 투표
게시글평점
9 댓글
Inline Feedbacks
모든 댓글 보기
9
0
여러분의 생각을 댓글로 남겨주세요.x