2013-06-30 66 views
0

我想手動指定在VBA中使用的顏色主題中的顏色。如何在VBA中指定顏色主題

我的功能看起來像這樣

Function GetColorScheme(i As Long) As String 
Const thmColor1 As String = "C:\Program Files\Microsoft Office\Document Themes 14\Theme Colors\Blue Green.xml" 
Const thmColor2 As String = "C:\Program Files\Microsoft Office\Document Themes 14\Theme Colors\Orange Red.xml" 
    Select Case i Mod 2 
     Case 0 
      GetColorScheme = thmColor1 
     Case 1 
      GetColorScheme = thmColor2 
    End Select 
End Function 
在我使用的路徑,配色方案定義主題的時刻

。然而,只要路徑改變,宏停止工作。有什麼方法可以定義使用IN VBA的顏色主題?例

Const thmColor1 As String = RGB..... 

我woudl欣賞任何意見

回答

0

你的函數可以用這種方法來改善:

Function GetColorSchemeRGB(i As Long) As Long 

    Select Case i Mod 2 
     Case 0 
      'for red 
      GetColorSchemeRGB = RGB(255, 0, 0) 
     Case 1 
      'for green 
      GetColorSchemeRGB = RGB(0, 255, 0) 
    End Select 
End Function 

您不能分配您的常量這樣:

Const thmColor1 As Long = RGB(255, 255, 255) 

,因爲它需要爲Const分配值。另外,您可以使立即檢查發現其長表示其RGB值是這樣的:

'for white 
Const thmColor1 As Long = 16777215 

可能被添加到您的函數:

'for white 
Debug.Pring RGB(255,255,255) 
16777215 '<<result 

,比你會以這種方式定義常量以你想要的方式。

+0

謝謝你的回答。我應該提到我以這種方式着色的元素是餅圖,這意味着我必須能夠爲每個CASE指定2種不同的顏色(因爲在每個餅圖中可以包含兩個不同的部分(切片)這個問題的答案肯定會有幫助 –

+0

是否有沒有辦法在案例結構中實現更多的單一顏色? –

+0

@TimonHeinomann,您可以根據需要添加儘可能多的'Case section'(提議)函數。 –