0

我想手动指定我在 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

在我使用配色方案的路径来定义主题的那一刻。然而,一旦路径改变,宏就会停止工作。有没有办法定义在 VBA 中使用的颜色主题?例如

Const thmColor1 As String = RGB.....

我将不胜感激任何评论

4

1 回答 1

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:

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

因为需要为 Const 赋值。或者,您可以立即检查以查找哪个 long 代表哪个 RGB 值,如下所示:

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

并且您将以这种方式定义您的 Const :

'for white
Const thmColor1 As Long = 16777215

可以按照您想要的方式添加到您的功能中。

于 2013-06-30T11:24:51.853 回答