엑셀 글자 색 변경 함수 :: HEX2FONTCOLOR 사용법 알아보기
엑셀 글자 색 변경 함수 목차 바로가기
구문
사용된 인수
인수 | 설명 |
색상코드 | 선택한 범위에 적용할 색상코드입니다. HEX코드로 입력합니다. (6자리의 숫자코드) |
범위 | 글자 색상을 변경할 범위입니다. |
함수 설명
HEX2FONTCOLOR 함수는 지정한 범위의 글자 색을 입력한 색상코드로 변경하도록 도와주는글자 색 변경 함수입니다. 생상코드는 HEX코드로 입력하며, HTML color codes 페이지를 이용하면 원하는 색상의 Hex코드를 쉽게 찾을 수 있습니다.
HEX2FONTCOLOR는 언제 사용하면 좋을까요? 아래 2가지 상황을 보여드리겠습니다.
1. 여러개의 조건부 서식을 적용할 경우
엑셀 조건부 서식을 사용하면 글자색 및 셀의 배경색을 상황에 따라 유동적으로 변경할 수 있습니다. 하지만 적용해야 할 조건이 많거나, 또는 적용되는 조건이 자주 바뀐다면 어떨까요?

조건부서식은 아주 훌륭한 기능이지만, 함수가 아닌 또다른 '기능'이므로, 함수보다는 사용하기 다소 불편한 것이 사실입니다.
HEX2FONTCOLOR를 사용하면 아주 간단하게 다양한 조건으로 글자 색을 변경할 수 있습니다. 예를 들어 특정 범위의 합계가 20 이상일 경우의 글자색을 변경할 경우, IF 함수를 활용하여 아래처럼 수식을 작성할 수 있습니다.

2. 여러 범위의 글자색 변경이 필요할 경우
엑셀은 기본적으로 글자색 변경시 RGB 색상 선택만 지원합니다. 따라서 여러 범위의 글자색을 각각의 색상으로 변경할 시, 매번 R,G,B 값을 선택해야 하므로 매우 번거로운 작업이 될 수 있습니다.

그럴 경우 HEX2FONTCOLOR 함수를 사용하면 색상코드로 원하는 범위의 글자 색상을 수식 자동채우기로 쉽게 변경할 수 있으므로, 작업시간을 대폭 단축할 수 있습니다. 예를들어 아래와 같이 여러 범위의 색상을 한번에 변경할 수 있습니다.

예제파일 다운로드
오빠두엑셀의 강의 예제파일은 여러분을 위해 자유롭게 제공하고 있습니다.
- [엑셀VBA함수] HEX2FONTCOLOR :: 색상코드로 글자 색 변경예제파일
글자 색 변경 함수, HEX2FONTCOLOR 전체 명령문
'############################################################### '오빠두엑셀 VBA 사용자지정함수 (https://www.oppadu.com) '■ HEX2FONTCOLOR 함수 '■ 지정한 HEX CODE 값으로 범위의 글자 또는 배경색상을 변경합니다. '■ 인수 설명 '_____________sHex : 헥스코드(컬러코드)를 받아올 범위 또는 텍스트입니다. '_____________rng : 받아온 컬러코드로 글꼴 색상을 변환할 대상 범위입니다. '############################################################### Function HEX2FONTCOLOR(sHex, rng As Range) As String Dim ir As Long: Dim ib As Long: Dim ig As Long sHex = CStr(cvRng(sHex)) sHex = Replace(sHex, "#", "") sHex = Right("000000" & sHex, 6) ir = Val("&H" & Left(sHex, 2)) ig = Val("&H" & Mid(sHex, 3, 2)) ib = Val("&H" & Right(sHex, 2)) rng.Font.Color = RGB(ir, ig, ib) HEX2FONTCOLOR = rng.Address(0, 0) & " = (" & ir & "," & ig & "," & ib & ")" End Function '############################################################### '오빠두엑셀 VBA 사용자지정함수 (https://www.oppadu.com) '■ cvRng 함수 '■ 사용자지정함수에서 범위로 인수를 받을 시 사용합니다. 만약 인수가 범위로 입력되었을 경우, 범위에 입력된 값을 반환합니다. '■ 인수 설명 '_____________TargetRng : 값을 반환할 범위 또는 그외 값입니다. '############################################################### Function cvRng(TargetRng) If TypeName(TargetRng) = "Range" Then cvRng = TargetRng.Value Else cvRng = TargetRng End If End Function
함수 사용시 주의사항
- 해당 함수는 사용자지정함수이므로 이전단계로 돌아가기가 불가능합니다.
- HEX2FONTCOLOR 함수는 선택한 범위의 글자 색 변경만 지원합니다. 선택한 범위의 배경 색을 변경해야 할 경우, 별도의 VBA 매크로 명령문을 작성해야합니다.
Sub ChangeCellColor() '// 선택한 범위의 배경색상을 빨간색으로 변경합니다. Selection.Interior.Color = 255 End Sub