문제

셀의 글꼴을 특정 RGB 값으로 설정하고 싶습니다.

내가 사용하는 경우

ActiveCell.Color = RGB(255,255,0)

나는 노란색을 얻지 만 더 이국적인 RGB 값을 사용하면 다음과 같이 사용합니다.

ActiveCell.Color = RGB(178, 150, 109)

난 그냥 회색으로 돌아갑니다.

RGB 값 만 사용할 수 없습니까? 그리고 해결 방법을 알고 있습니까?

감사.

도움이 되었습니까?

해결책

Excel은 색상 팔레트의 색상 만 사용합니다. RGB 값을 사용하여 셀을 설정하면 가장 가까운 일치 인 팔레트에서 셀을 선택합니다. 색상으로 팔레트를 업데이트 한 다음 색상을 선택하면 작동합니다.

이렇게하면 현재 팔레트에 무엇이 있는지 볼 수 있습니다.

 Public Sub checkPalette()
      Dim i As Integer, iRed As Integer, iGreen As Integer, iBlue As Integer
      Dim lcolor As Long
      For i = 1 To 56
        lcolor = ActiveWorkbook.Colors(i)
        iRed = lcolor Mod &H100  'get red component
        lcolor = lcolor \ &H100  'divide
        iGreen = lcolor Mod &H100 'get green component
        lcolor = lcolor \ &H100  'divide
        iBlue = lcolor Mod &H100 'get blue component
        Debug.Print "Palette " & i & ": R=" & iRed & " B=" & iBlue & " G=" & iGreen
      Next i
    End Sub

이렇게하면 팔레트를 설정할 수 있습니다

Public Sub setPalette(palIdx As Integer, r As Integer, g As Integer, b As Integer)
  ActiveWorkbook.Colors(palIdx) = RGB(r, g, b)
End Sub

다른 팁

빠른 팁 : Excel 팔레트에는 거의 사용되지 않는 두 개의 색상이 있으며 다른 사람들의 시트에 대한 눈에 띄는 변경없이 일반적으로 사용자 정의 값으로 설정할 수 있습니다.

다음은 기본값보다 훨씬 덜 공격적인 합리적인 '소프트 톤'색상 세트를 만드는 코드입니다.

Public Sub SetPalePalette (옵션 WBK AS Excel.Workbook) '이 서브 루틴은 컨트롤, 제목 및 대화에 사용할 수있는 창백한 톤의 사용자 정의 팔레트를 만듭니다.'

' **이 코드는 공개 도메인에 있습니다 **'Nigel Heffernan http://excellerando.blogspot.com

'Excel Color Palette에는 거의 사용되지 않는 두 개의 숨겨진 행이 있습니다.

'기존 화면 업데이트를 캡처하는 코드, 필요한 경우'일시적으로 업데이트를 일시적으로 일시 중단하는 동안이 절차는 화면에 자극적 인 플리커를 생성하고 필요한 경우 종료에서 화면 업데이트를 복원합니다.

부울처럼 희미한 bscreenupdating

bscreenupdating = application.screenupdating

if bscreenupdating = true the application.screenupdating = false end if

'Application.screenUpdating <> bscreenupdating the then'application.screenupdating = bscreenupdating 'end if

wbk가 아무것도 없다면 WBK = thisworkbook END IF를 설정합니다.

WBK와 함께

.Colors(17) = &HFFFFD0  ' pale cyan
.Colors(18) = &HD8FFD8  ' pale green.
.Colors(19) = &HD0FFFF  ' pale yellow
.Colors(20) = &HC8E8FF  ' pale orange
.Colors(21) = &HDBDBFF  ' pale pink
.Colors(22) = &HFFE0FF  ' pale magenta
.Colors(23) = &HFFE8E8  ' lavender
.Colors(24) = &HFFF0F0  ' paler lavender

끝납니다

If application.screenupdating <> bscreenupdating the application.screenupdating = bscreenupdating end if

종료 서브

Public sub setgreypalette () '이 서브 루틴은 컨트롤, 제목 및 대화에 사용할 수있는 greyshades의 사용자 정의 팔레트를 만듭니다.

' **이 코드는 공개 도메인에 있습니다 **'Nigel Heffernan http://excellerando.blogspot.com

'Excel Color Palette에는 거의 사용되지 않는 두 개의 숨겨진 행이 있습니다.

'기존 화면 업데이트를 캡처하는 코드, 필요한 경우'일시적으로 업데이트를 일시적으로 일시 중단하는 동안이 절차가 화면에 자극적 인 플리커를 생성하는 동안 ... 종료에서 화면 업데이트를 복원해야합니다!

부울처럼 희미한 bscreenupdating

bscreenupdating = application.screenupdating

if bscreenupdating = true the application.screenupdating = false end if

'Application.screenUpdating <> bscreenupdating the then'application.screenupdating = bscreenupdating 'end if

이 작업 책 .colors (25) = & hf0f0f0 .colors (26) = & he8e8e8 .colors (27) = & he0e0e0 .colors (28) = & hd8d8d8 .colors (29) = & hd0d0 .colors (30) = & hc8c0c0c0c0c0c0c0c0c0c0c0c0c0c0 이것은 메인 팔레트의 일반 25% 회색입니다 .Colors (31) = & HB8B8B8 '간격이 더 넓어지고 있음을 참고하십시오. 선형 스케일 끝으로 인식됩니다

'Excel 기본 팔레트의 오른쪽 열은 다음 회색을 지정합니다.

'색상 (56) = & H333333'색상 (16) = & H808080 '색상 (48) = & H969696'색상 (15) = & HC0C0C0 '기본 '25% 회색'

'이것은'갭 '을 개선하고 색상을 쉽게 구별 할 수 있도록 수정해야합니다.

이 작업 책.

If application.screenupdating <> bscreenupdating the application.screenupdating = bscreenupdating end if

종료 서브

각 통합 문서의 Open () 및 BeforeClose () 이벤트에 대해 또는 각 워크 시트의 활성화 및 비활성화 이벤트에 대해 'CaptureColors'및 'ReinStateColors'기능을 작성하도록 선택할 수도 있습니다.

나는 3D 차트의 '열'색상 그라디언트를 생성하는 어딘가에 코드가 놓여있어 '콜드'파란색에서 '핫'레드까지 32 단계로 진행됩니다. 이것은 생각보다 어렵다 : 인간의 시각 시스템에 의해 '동일한 간격'으로 인식되는 색상의 기울기 (로그 규모의 강도로 실행되며 빨간색, 녹색 및 파란색에 대한 비선형 가중치가 '강한'색상으로 비선형 가중치가 있습니다. ) 구조에 시간이 걸리면 VBA를 사용하여 지정된 순서대로 지정한 색상을 사용하여 MS 차트를 강요해야합니다.

Sub color()

bj = CStr(Hex(ActiveCell.Interior.Color))
If Len(bj) < 6 Then
    Do Until Len(bj) = 6
        bj = "0" & bj
    Loop
End If

R = CLng("&H" & Right(bj, 2))
bj = Left(bj, Len(bj) - 2)
G = CLng("&H" & Right(bj, 2))
bj = Left(bj, Len(bj) - 2)
B = CLng("&H" & bj)

End Sub

답과 의견에 감사드립니다.

내 클라이언트가 다른 플러그인을 Excel에 설치하여 색상 팔레트를 조작했기 때문에 실제로 큰 어려움을 겪었습니다.

나는 팔레트에서 몇 가지 색상을 교체 한 다음 특정 ColorIndex를 내 요소에 서명했지만 소년은 예쁘지 않습니다.

라이센스 : CC-BY-SA ~와 함께 속성
제휴하지 않습니다 StackOverflow
scroll top