Excel은 56 가지 색상으로 구성된 색상 표를 사용합니다. 셀 서식 대화 상자의 패턴 탭을 표시하면 이러한 색상을 볼 수 있습니다.

VBA에서 매크로를 만들 때 상수를 사용하여 이름으로 이러한 색상을 참조 할 수 있습니다.

불행히도 Excel의 VBA에는 팔레트의 56 개 색상 각각에 대해 정의 된 상수가 없습니다. 이름별로 정의 된 유일한 색은 ColorConstants 클래스의 멤버이며 클래스에는 vbBlack, vbWhite, vbRed, vbGreen, vbBlue, vbYellow, vbMagenta 및 vbCyan의 8 개 멤버가 있습니다.

VBA에서는 ColorIndex 속성을 사용하여 Excel의 팔레트에서 사용할 색상을 정의 할 수 있습니다. 문제는 ColorIndex가 색상이 아니라는 것입니다. 팔레트에 대한 색인입니다. 따라서 1의 ColorIndex는 팔레트의 첫 번째 색상이고 2는 두 번째 색상입니다. 다음 URL에서 샘플 코드를 살펴보면 실제 동작을 볼 수 있습니다.

http://www.ozgrid.com/VBA/ReturnCellColor.htm

이 코드는 셀의 ColorIndex 속성을 검사하고 색상 이름을 반환합니다. 그러나 반환 된 이름은 색상에 대한 상수가 아닙니다. 해당 색인의 팔레트가 어떤 색상으로 표시되는지에 대한 설명 일뿐입니다.

셀의 색상을 설정하려면 실제로 Color 속성을 사용해야합니다. 이 속성을 사용하면 앞서 언급 한 8 개의 VBA 색상 상수를 사용할 수 있습니다. 이러한 Color 속성을 사용하여 셀의 내부 색상을 설정하면 8 개의 명명 된 색상이 1에서 8까지의 ColorIndex 값에 해당한다는 것을 알 수 있습니다. 다음 매크로는이를 잘 보여줍니다.

Sub CheckColors()

Dim arr8Colors As Variant     Dim i As Integer

arr8Colors = Array( _       vbBlack, vbWhite, vbRed, vbGreen, _       vbBlue, vbYellow, vbMagenta, vbCyan)

For i = 0 To 7         Selection.Offset(i, 0).Interior.Color = arr8Colors(i)

Selection.Offset(i, 1).Value = Selection.Offset(i, 0).Interior.ColorIndex     Next i End Sub

Color와 ColorIndex 사이의 처음 8 개 값에 대한 이러한 대응은 Excel에서 VBA 상수로 정의 된 8 가지 색상 인 8 가지 색상 만 사용하도록 허용했던 시대로 거슬러 올라가는 역사의 아티팩트로 간주되어야합니다. 셀에 다른 색을 지정하려면 다음과 같이 RGB 함수를 사용하여 Color 속성을 지정해야합니다.

Selection.Interior.Color = RGB(128, 64, 255)

RGB 기능을 사용하면 모든 색상의 빨강, 녹색 및 파랑 구성 요소를 지정할 수 있습니다. 각 구성 요소의 값 범위는 0에서 255까지입니다.

_ 참고 : _

이 페이지 (또는 ExcelTips 사이트의 다른 페이지)에 설명 된 매크로를 사용하는 방법을 알고 싶다면 유용한 정보가 포함 된 특별 페이지를 준비했습니다.

link : / excelribbon-ExcelTipsMacros [새 브라우저 탭에서 특별 페이지를 열려면 여기를 클릭하세요].

_ExcelTips_는 비용 효율적인 Microsoft Excel 교육을위한 소스입니다.

이 팁 (2778)은 Microsoft Excel 97, 2000, 2002 및 2003에 적용됩니다.