RGB 색상을 가변적으로 저장하는 방법은 무엇입니까?
Excel VBA 프로젝트의 변수에 RGB 색상을 저장하여 서브 전체에서 다양한 셀/레인지의 배경색을 설정하려고 합니다.
색상을 변수별로 한 번 설정하고 싶기 때문에 처음부터 바꾸기로 결정하면 한 곳에서만 하면 됩니다.
Dim clrBlue As ColorFormat
clrBlue = RGB(0, 0, 256)
Range("a2").Interior.Color = clrBlue
Range("b3").Interior.Color = clrBlue
위의 코드를 사용하면 런타임 오류가 발생합니다.
개체 변수 또는 블록 변수가 설정되지 않음
다른 함수를 쓸 수 있습니다.SetBlue
,SetRed
,SetGreen
각 색상을 적용하는데 지저분한 느낌이 듭니다.
내가 뭘 잘못하고 있는지 누가 제안해줄래?
RGB
a를 반환하다Long
, 따라서 선언해야 합니다.clrBlue
~하듯이Long
로서가 아니라ColorFormat
.
Dim clrBlue As Long
clrBlue = RGB(0, 0, 255)
Application.union(Range("A2"), Range("B3")).Interior.Color = clrBlue
다른 사람이 말했듯이 RGB()는 Long을 반환하므로 ColorFormat 대신 Long을 사용해야 합니다.C#의 Color enum이 마음에 들어 VBA 모듈에서 흉내를 내기 시작했습니다.고유한 열거형을 만들어 프로젝트의 색상 값을 저장한 다음 색상을 사용하여 색상을 참조할 수 있습니다.파랑색.
또한 다른 색조의 파란색을 사용하기로 결정하면 색상을 쉽게 변경할 수 있습니다.열거형 및 색상을 사용한 모든 위치를 업데이트합니다.파란색이 업데이트됩니다.
예:
Public Enum Color
Black = 0 'RGB(0, 0, 0)
Blue = 14390640 'RGB(112, 149, 219)
Gray = 11842740 'RGB(180, 180, 180)
Red = 6118894 'RGB(238, 93, 93)
White = 16777215 'RGB(255, 255, 255)
End Enum
저장할 RGB 값의 긴 값을 얻기 위해 Immediate 창에 값을 던져 출력을 복사하기만 하면 됩니다.
즉시 창에 다음을 입력합니다.
? RGB(112, 149, 219)
출력은 14390640이 됩니다.더 쉽게 값을 구할 수 있는 방법이 있을지도 몰라요.
나는 이것을 시도해 본 적이 없고 이전의 어떤 논평에도 이의를 제기하지 않는다.
원본 코드 샘플에는 clrBlue = RGB(0, 0, 256)가 있습니다.
RGB에서 허용되는 최대 수는 255입니다.그게 문제일 수도 있어요.
언급URL : https://stackoverflow.com/questions/25201173/how-to-store-rgb-colour-in-variable
'sourcetip' 카테고리의 다른 글
명령 프롬프트(cmd)를 사용하여 Windows에서 파일을 나열하는 방법.Linux에서처럼 'is'를 사용하려고 했는데 오류가 표시됩니까? (0) | 2023.04.18 |
---|---|
bash 스크립트에서 set -e는 무엇을 의미합니까? (0) | 2023.04.13 |
목록 시작 부분에 항목을 추가하려면 어떻게 해야 합니다. (0) | 2023.04.13 |
WPF에서 그리드 제어에 경계를 설정하려면 어떻게 해야 합니까? (0) | 2023.04.13 |
인수를 사용하여 bash에서 Python 스크립트를 호출합니다. (0) | 2023.04.13 |