메뉴

엑셀 VBA 색상표 및 색상 코드 총정리

by 오빠두엑셀
읽는 시간 3분 최종 수정 2026.08.13 조회수 277

ColorIndex 번호를 한글 이름으로 바꾸는 Enum 을 모듈 최상단에 붙여 넣으면, 색을 숫자 대신 '빨강색' 같은 이름으로 지정할 수 있습니다.

VBA 에서 색을 지정할 때 쓰는 ColorIndex 는 3, 20 같은 번호라 코드만 봐서는 무슨 색인지 알 수 없습니다. Enum 으로 번호에 한글 이름을 붙여 두면 색을 이름으로 지정할 수 있어 읽기도 고치기도 쉬워집니다.

VBA 색상 지정 3가지 방법 — RGB·색상 상수·컬러 인덱스로 VBA 색상 지정법을 정리했습니다.
참고 자료를 정리했어요
LINKS
본문에서 소개한 자료와 예제 파일을 한 곳에 모았습니다.

Enum 이 무엇이고 왜 쓰나요

Enum(Enumeration, 열거)은 숫자에 이름을 붙여 두는 목록입니다. 한 번 선언해 두면 그 뒤로는 숫자 대신 이름을 쓸 수 있고, 입력할 때 자동완성 목록에도 나타납니다.

VBA ColorIndex 가 지원하는 기본 색상 56가지를 번호와 함께 나열한 표
VBA ColorIndex 가 지원하는 기본 색상 목록입니다.

ColorIndex 팔레트는 모두 56가지이고, 아래 Enum 은 그중 실무에서 자주 쓰는 36가지에 한글 이름을 붙인 것입니다.

VBA 편집기에서 색상 이름 자동완성 목록이 표시된 화면
번호 대신 이름으로 색을 지정할 수 있습니다.

어디에 붙여 넣나요

Enum 은 모듈의 가장 위쪽에 있어야 합니다. 명령문 안이나 두 명령문 사이에는 넣을 수 없습니다. 아래 전체 코드를 복사해 모듈 최상단에 붙여 넣으세요.

모듈 최상단에 Enum 코드를 붙여 넣은 VBA 편집기 화면
Enum 은 반드시 모듈 최상단에 넣습니다.
주의 : Enum 을 명령문 사이에 넣으면 컴파일 오류가 납니다. 여러 모듈에서 함께 쓰려면 Public Enum 으로 선언하고 한 모듈에만 두세요 — 두 모듈에 같은 이름으로 선언하면 이름이 충돌합니다.

사용 방법

변수를 ColorIndexs 형으로 선언하면 색 이름이 자동완성으로 뜹니다.

Sub Test1()

    '// 셀의 배경색 바꾸기
    Dim MyColor As ColorIndexs
    MyColor = 옅은하늘
    Range("A1").Interior.ColorIndex = MyColor

End Sub
Sub Test2()

    '// 셀의 글자색 바꾸기
    Dim MyColor As ColorIndexs
    MyColor = 매실색
    Range("A1").Font.ColorIndex = MyColor

End Sub

색상표 전체 코드

Public Enum ColorIndexs

    검정색 = 1
    흰색 = 2
    빨강색 = 3
    파랑색 = 5
    노랑색 = 6
    핑크색 = 7
    오렌지 = 46
    보라색 = 13
    청록색 = 14
    옅은노랑 = 19
    옅은하늘 = 20
    매실색 = 18
    밝은하늘 = 8
    연두색 = 4
    회색20 = 15
    회색40 = 48
    회색60 = 16
    회색80 = 56
    진한적색 = 9
    진한녹색 = 10
    진한청색 = 11
    진한황색 = 12
    진한보라 = 21
    진한하늘 = 33
    진한산호색 = 49
    담자색 = 17
    토황색 = 45
    취람색 = 35
    송화색 = 36
    두록색 = 40
    주색 = 22
    청현색 = 23
    회보라색 = 24
    밝은벽청색 = 37
    선홍색 = 38
    치색 = 47

End Enum
관련 게시글
댓글 3
4.7 (3개 평가)
iseok
iseok 2021.02.15 08:40
감사드립니다. 꼭 필요한 내용이었는데. 감사해요..
굴레악
굴레악 2021.02.25 09:47
만들어 주셔서 감사합니다.

그런데 이미지(엑셀 VBA 색상표에서 지원하는 기본 색상 목록) 하고 좀 다른데 최종본 맞나요?
이미지와 달리 RGB코드는 없는데 말이죠.
색상 변경 버튼에 아무런 연결이 없는데요.
색상 변경 버튼에 'test 매크로' 연결하면 되는 거 맞죠? 연결이 안 되 있어서 하니
Sub Test()

Dim MyColor As ColorIndexs
MyColor = 노랑색
Range("J6").Interior.ColorIndex = MyColor

End Sub
값이 입력칸에 잘 나오네요.

이름이 지정되지 않은 것에는 개별 지정해주면 사용할 수 있겠죠?
강민준🤗
강민준🤗 2024.08.10 13:53
좋은 강의 감사합니다
스크랩 완료