엑셀 VBA에서 색상을 지정하기 위한 ColorIndex 색상표와 색상을 설정하는 방법


엑셀의 VBA에서 프로그램 로직을 구현할 때 글자 색이나 셀의 색상을 지정해줘야 할 때가 있습니다.

합계가 표시되는 셀이나 조건에 의해 다른 셀 값과 구분이 필요한 셀에 색상을 지정해주면 시트를 보는데 있어 쉽게 구분할 수 있습니다.

VBA에서 색상을 지정하는 방법에는 ColorIndex 속성을 사용하는 방법과 Color 속성을 사용하 방법이 있습니다.

ColorIndex 속성은 고유한 Index 번호를 지정해서 사용하고, Color 속성은 VbColor 또는 RGB 색상을 사용해서 색을 지정할 할 수 있습니다.

이번 글에서는 엑셀 VBA에서 색상을 지정하기 위한 ColorIndex 색상표와 색상을 설정하는 방법에 대해 알아보겠습니다.

엑셀 VBA에서 사용하는 ColorIndex 색상표 및 VB Color 색상표

▼ VBA 코드에서 ColorIndex 값에 대응하는 색상표 입니다.

  • ColorIndex 값을 지정해주면 해당 색상으로 색이 지정됩니다.
  • ColorIndex 값 0은 아무런 색상을 지정하지 않습니다.
엑셀 VBA에서 색상을 지정하기 위한 ColorIndex 색상표와 색상을 설정하는 방법


▼ VBA 코드에서 Color 속성에 사용하는 VB Color 색상표 입니다.

  • VbColor Name을 Color 속성에 지정해 주면 해당 색상으로 색이 지정됩니다.
엑셀 VBA의 VbColor 색상표

엑셀 VBA에서 ColorIndex 속성을 사용하는 색을 지정하는 방법

– 셀의 배경 색을 지정할 때 Interior에 Color를 지정해 줍니다.
Range(“A1”).Interior.ColorIndex = 6
Range(“C2:E5”).Interior.ColorIndex = 5  : C2셀에서 E5셀까지
Cells(5, 3).Interior.ColorIndex = 4  : 5행(Row) 3열(Column)에 위치한 셀

– 셀의 글꼴 색을 지정할 때 Font에 Color를 지정해 줍니다.
Range(“A1”).Font.ColorIndex = 5

– 셀의 테두리 색상을 지정할 때 Borders에 Color를 지정해 줍니다.
Range(“A1”).Borders.ColorIndex = 3

– 셀의 배경 색의 ColorIndex를 가져오는 예제입니다.
Dim col as Integer
col = Range(“A1”).Interior.ColorIndex

엑셀 VBA에서 Color 속성에 VbColor Name을 사용하는 색을 지정하는 방법

– 셀의 배경 색을 지정할 때 Interior에 Color를 지정해 줍니다.
Range(“A1”).Interior.Color = vbYellow

– 셀의 글꼴 색을 지정할 때 Font에 Color를 지정해 줍니다.
Range(“A1”).Font.Color = vbBlue

– 셀의 테두리 색상을 지정할 때 Borders에 Color를 지정해 줍니다.
Range(“A1”).Borders.Color = vbRed

엑셀 VBA에서 Color 속성에 RGB 색상을 사용하는 색을 지정하는 방법

RGB는 Red, Green, Blue의 약자입니다. 색상을 RGB로 입력할 때 각 색상 코드에 대해 0에서 255 사이의 값을 입력합니다. 각 색상 코드의 값이 커질수록 Red, Green, Blue에 가까운 색으로 표현되며 3가지 색을 혼합해서 새로운 색을 만든다고 생각하면 됩니다.

  • RGB 색상을 사용할 경우 아주 정밀하고 세분화 된 색 지정이 가능합니다.

– 셀의 배경 색을 지정할 때 Interior에 Color를 지정해 줍니다.
Range(“A1”).Interior.Color = RGB(255,255,0)

– 셀의 글꼴 색을 지정할 때 Font에 Color를 지정해 줍니다.
Range(“A1”).Font.Color = RGB(0,0,255)

– 셀의 테두리 색상을 지정할 때 Borders에 Color를 지정해 줍니다.
Range(“A1”).Borders.Color = RGB(128,230,96)





이 글이 도움이 되었기를 바랍니다. ^-^


답글 남기기