엑셀 VBA의 ColorIndex 속성은 셀, 글꼴, 테두리 등의 색상을 변경할 때 사용되는 색상 인덱스 값(1~56)을 지정하는 속성입니다.
엑셀의 기본 색상 팔레트(56색)를 기준으로 동작하며, RGB 함수와 함께 사용할 수도 있습니다.
1. 기본 문법
vba
Range("A1").Interior.ColorIndex = 3 ' A1 셀의 배경색을 빨간색으로 변경 Range("A1").Font.ColorIndex = 5 ' A1 셀의 글자색을 파란색으로 변경
2. ColorIndex 색상표
ColorIndex
|
색상
|
ColorIndex
|
색상
|
1
|
|
29
|
|
2
|
|
30
|
|
3
|
|
31
|
|
4
|
|
32
|
|
5
|
|
33
|
|
6
|
|
34
|
|
7
|
|
35
|
|
8
|
|
36
|
|
9
|
|
37
|
|
10
|
|
38
|
|
11
|
|
39
|
|
12
|
|
40
|
|
13
|
|
41
|
|
14
|
|
42
|
|
15
|
|
43
|
|
16
|
|
44
|
|
17
|
|
45
|
|
18
|
|
46
|
|
19
|
|
47
|
|
20
|
|
48
|
|
21
|
|
49
|
|
22
|
|
50
|
|
23
|
|
51
|
|
24
|
|
52
|
|
25
|
|
53
|
|
26
|
|
54
|
|
27
|
|
55
|
|
28
|
|
56
|
|
3. ColorIndex 사용 예제
📌 셀 배경색 변경
Sub 배경색_변경()
Range("A1").Interior.ColorIndex = 6 ' 노랑
End Sub
|
📌 셀 글자색 변경
Sub 글자색_변경()
Range("A1").Font.ColorIndex = 3 ' 빨강
End Sub
|
📌 셀 테두리 색 변경
Sub 테두리색_변경()
Range("A1").Borders(xlEdgeBottom).ColorIndex = 5 ' 파랑
End Sub
|
📌 ColorIndex 사용하여 범위 색 변경
Sub 범위_색변경()
Dim rng As Range
Set rng = Range("A1:D5")
rng.Interior.ColorIndex = 10 ' 초록
rng.Font.ColorIndex = 2 ' 흰색 글자
End Sub
|
📌 조건부 색상 적용
Sub 조건부_색상()
Dim cell As Range
For Each cell In Range("A1:A10")
If cell.Value > 50 Then
cell.Interior.ColorIndex = 3 ' 값이 50보다 크면 빨강
Else
cell.Interior.ColorIndex = 6 ' 값이 50 이하이면 노랑
End If
Next cell
End Sub
|
4. ColorIndex 값 초기화
📌 배경색 제거
Sub 배경색_제거()
Range("A1").Interior.ColorIndex = xlNone
End Sub
|
📌 xlNone → 색상 제거 (배경색 없음)
📌 글자색 초기화
Sub 글자색_제거()
Range("A1").Font.ColorIndex = xlAutomatic
End Sub
|
📌 xlAutomatic → 기본 자동 색상으로 변경
5. ColorIndex와 RGB 차이
- ColorIndex: 엑셀의 56색 팔레트를 사용 (한정된 색상)
- RGB: 1670만 가지 색상을 지원 (더 다양하고 세밀한 색상 지정 가능)
📌 RGB 사용 예제
Sub RGB_색상_설정()
Range("A1").Interior.Color = RGB(255, 0, 0) ' 빨간색 배경
Range("A1").Font.Color = RGB(0, 0, 255) ' 파란색 글자
End Sub
|
📌 RGB(255, 0, 0) → 빨강
📌 RGB(0, 0, 255) → 파랑
📝 정리
기능
|
VBA 코드
|
배경색 변경
|
Range("A1").Interior.ColorIndex = 3
|
글자색 변경
|
Range("A1").Font.ColorIndex = 5
|
테두리 색 변경
|
Range("A1").Borders(xlEdgeBottom).ColorIndex = 6
|
색상 초기화
|
Range("A1").Interior.ColorIndex = xlNone
|
기본 색상 복구
|
Range("A1").Font.ColorIndex = xlAutomatic
|
RGB 색상 사용
|
Range("A1").Interior.Color = RGB(255, 0, 0)
|
🔥 VBA에서 ColorIndex를 사용하면 기본 56색을 쉽게 지정할 수 있으며, RGB를 활용하면 더 다양한 색상을 적용할 수 있습니다! 🚀