【问题标题】:How do you change the color of a shape in a MS Word document using VBA triggered in MS Access?如何使用 MS Access 中触发的 VBA 更改 MS Word 文档中形状的颜色?
【发布时间】:2014-02-05 18:53:40
【问题描述】:

我正在使用 Access 打开 Word 文档并使用 Access 中的数据填充 Word 中的一些字段。这是代码(到目前为止一切正常):

Private Sub cmdPopulateWord_Click()

    Dim appWord As Word.Application
    Dim doc As Word.Document
    Dim TestProspCode As String

    On Error Resume Next
    Err.Clear

    Set appWord = GetObject(, "Word.Application")

    If Err.Number <> 0 Then

        Set appWord = New Word.Application

    End If

    Set doc = appWord.Documents.Open("H:\Populate Word Document from Access.docx", , True)

    With doc

        .FormFields("wtxID").Result = Me!ID
        .FormFields("wtxFirstName").Result = Me!FirstName
        .FormFields("wtxLastName").Result = Me!LastName
        .FormFields("wtxDoB").Result = Me!DateOfBirth
        .FormFields("wtxProspCode").Result = Forms!tblWordDoc!tblProspCode_sub!ProspectusCode 
        .FormFields("wtxCourse").Result = Forms!tblWordDoc!tblProspCode_sub!Course

        .Visible = True
        .Activate

    End With

    Set doc = Nothing

    Set appWord = Nothing

    Exit Sub

errHandler:
MsgBox Err.Number & ": " & Err.Description

End Sub

我正在尝试查看如何更改已在上述代码中引用的同一 Word 文档中的形状颜色。

参考一些信息here,我尝试在上面代码中的with 之后直接插入下面的代码。

With doc

    .Shapes("Rounded Rectange 1").Fill.BackColor.RGB = RGB(0, 0, 0)
    .Visible = msoTrue

End With

没有错误,但形状的颜色没有变为黑色。

【问题讨论】:

  • 尝试在 Word 中录制宏,然后添加对 Word 对象的引用。
  • 没看到你评论!感谢您的提示。我尝试录制宏(在 Word 中很难,因为宏录制器限制了您可以使用鼠标执行的操作,并且似乎不想录制格式)。无论如何,找到了它需要被引用的方式(见下面我的回答;似乎与微软的帮助页面有点不同)。

标签: vba ms-access ms-word


【解决方案1】:

您可能正在寻找的是.ForeColor property 而不是.BackColor。请参阅下面的代码,其中我还展示了如何更改形状的边框以使其看起来更好。

With doc.Shapes("Rounded Rectangle 1")
    'dark grey, (0,0,0) for black
    .Fill.ForeColor.RGB = RGB(80, 80, 80)
    'black borders
    .Line.ForeColor.RGB = RGB(0, 0, 0)
End With

【讨论】:

  • 谢谢你..它似乎仍然没有更新形状的格式。
  • 我想我需要看看你的文件和那种形状。如果您发现可以在下一条评论中添加指向它的链接...
  • i41.tinypic.com/308b7d2.png 我不知道这是否有区别,但 Word 文档以只读方式打开。不确定这有多重要,因为它可以更新字段...
  • 谈论“查看您的文档”我的意思是“下载它”。有可能吗?以“只读”模式打开不是问题,但是……您不是混淆了“只读”和“保护”吗?
【解决方案2】:

根据 Remou 的使用 MS_Word 宏记录器的提示,我发现矩形形状及其背景颜色需要如下引用:

.Shapes.Range(Array("Rounded Rectangle 1")).Fill.ForeColor.RGB = RGB(0, 0, 0)

【讨论】:

    猜你喜欢
    • 2014-07-24
    • 1970-01-01
    • 2019-04-19
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多