代码之家  ›  专栏  ›  技术社区  ›  Kevin

单词vba shape forecolor wdthemecolorccent2在菜单中显示为themecolor 1

  •  0
  • Kevin  · 技术社区  · 6 年前

    我在Word(Office365)中编写了一些宏代码,将形状轮廓的颜色设置为主题颜色之一。对形状执行此操作的代码如下所示:

    shape.line.foreColor.ObjectThemeColor = wdThemeColorAccent2
    

    通过将“wdxx”颜色指定给 ObjectThemeColor 字段中,当文档颜色主题更改时,形状周围线条的颜色将自动更改。

    我的问题(或第一个奇怪之处)是,当我使用上面的代码指定accent2,然后执行以下操作:选择形状、菜单、格式、形状轮廓,并将鼠标悬停在带有红色轮廓(标记活动线条颜色)的颜色框上时,工具提示会说“青绿色,强调文字颜色1”而不是“强调文字颜色2”。

    我本以为 wdThemeColorAccent2 要调用的颜色 Accent 2 在工具提示中,但不是。

    第二个问题是,显然我没有办法用宏代码指定菜单中显示的最后一种颜色。由于偏移(代码中的重音2=菜单中的重音1),我需要使用 wdThemeColorAccent7 在代码中指定菜单中显示的最后一种颜色(在工具提示中标记为强调文字颜色6)。

    我想知道这是不是一个字里行间的错误(在我看来确实是这样),还是我做错了什么。为了重现这种情况,我创建了一个简单的空矩形,选中它,然后运行上面的代码行来更改形状的轮廓颜色。这里有一个小的子程序来说明这个问题(在运行子程序之前选择您的形状)。

    Sub TestAccent()
    Dim shp As Shape
    Set shp = selection.ShapeRange(1)
    shp.line.foreColor.ObjectThemeColor = wdThemeColorAccent4
    shp.line.Weight = 0.5
    shp.line.Visible = True
    End Sub
    
    1 回复  |  直到 6 年前
        1
  •  0
  •   Cindy Meister    6 年前
    wdThemeColorAccent

    wdThemeColorAccent4 wdThemeColorAccent6

    enter image description here

    this article

    Public Enum ColorSchemeAccents
        Accent1 = 3
        Accent2 = 4
        Accent3 = 5
        Accent4 = 6
        Accent5 = 7
        Accent6 = 8
        Accent7 = 9
        Accent8 = 10
    End Enum
    
    Sub TestAccent()
        Dim shp As Shape
        Set shp = Selection.ShapeRange(1)
        shp.Line.ForeColor.ObjectThemeColor = ColorSchemeAccents.Accent8
        shp.Fill.ForeColor = RGB(250, 250, 250)
        shp.Line.Weight = 2
        shp.Line.Visible = True
    End Sub