엑셀 셀 색을 추출하는 함수 만들고 사용하는 방법(사용자 정의 함수)

2023. 1. 17. 13:15 / 서기랑

 엑셀에서는 기본적으로 셀의 색을 추출하거나 비교하는 등 서식과 관련된 함수는 없다.

 때문에 셀의 색과 관련된 조건이 필요하다면 일부 사용자들은 매크로를 통해 색과 관련된 함수를 직접 만들어서 사용하는데 함수를 만들어야 한다고 생각하면 뭔가 어렵게 느껴질 수 있지만 막상 만들어 보면 생각보다는 어렵지 않다.

     

    셀 색을 추출하는 함수 만들기

     [Alt + F11]을 눌러 매크로 창을 열고 상단 메뉴에서 [삽입 -> 모듈]을 클릭.

     모듈 입력 창이 나타나면 아래의 코드를 입력하여 사용자 정의 함수를 만들자.

    Function Colorinfo(A As Range, ctype As Variant)
     If ctype = 0 Then
      Colorinfo = Hex(A.Font.Color)
     Else
      Colorinfo = Hex(A.Interior.Color)
     End If
    End Function

    엑셀 매크로 사용자 정의 함수 만들기

     

    만든 함수 사용하기

     위 함수는 옵션 값에 따라서 셀의 색이나 글자 색을 색상 코드로 반환하는 함수라고 보면 된다.

     옵션 값은 0을 입력하면 글자 색을 색상 코드를 반환하며, 그 외에 다를 숫자를 입력하면 셀의 색을 생상 코드로 반환한다.

     사용 방법은 일반적인 함수와 크게 다르지 않다.

    - 기본 사용
    =colorinfo(셀, 옵션)

    - 사용 예
    =colorinfo(B2,1)

    엑셀 셀 색 반환 함수

     

    그 외 내용

    - 셀 색을 비교하는 함수.

     위의 매크로 코드를 조금만 변형하면 셀 간의 색을 비교하는 함수도 만들 수 있다.

     단순히 셀의 색을 추출하는 것이 아닌 비교하는 등 다른 작업이 필요하다면 아래의 글과 같이 변경해서 사용하는 것도 가능하다.

     셀 색을 비교하는 함수 만들기

     

    - 함수 이름 변경.

     함수의 이름은 겹치지 않는 선에서는 자유롭게 사용자가 변경할 수 있다.

     여기서는 임시로 Colorinfo라고 정의하긴 했지만 함수의 이름은 엑셀의 기존 함수의 이름과 겹치지 않는 선에서는 어느 정도 자유롭게 변경하는 것이 가능하다.

     

    - 계산 후 색이 변경된 경우.

     엑셀의 기본 함수들은 수식에 사용된 셀의 값이 변경되면 수식의 결과도 바로 변경된다.

     하지만 매크로를 통해 작성한 함수는 수식에 사용된 셀의 값이 변경되도 바로 적용되지는 않는데 엑셀에 값을 입력, 삭제, 수정 등의 작업이 발생하게 되면 변경이 된다.