【问题标题】:VBA in Word: Programmatically add content control with a styleWord 中的 VBA:以编程方式添加具有样式的内容控件
【发布时间】:2018-06-06 00:45:54
【问题描述】:

当使用 VBA 以编程方式将富文本内容控件添加到 Word .docm 时,有没有办法为内容设置样式?

作为比较,如果我使用 Word Developer 工具栏手动创建内容控件,我可以在内容控件的属性对话框中选择“使用样式来格式化内容”。我想要的结果和我那样做的结果是一样的,只是我需要用代码来做。

这是我添加内容控件的代码,它是由单击命令按钮触发的,它还执行一些其他操作:

Private Sub selConcept_Click()

    ActiveDocument.InlineShapes(1).Delete
    ActiveDocument.InlineShapes(3).Delete
    ActiveDocument.InlineShapes(3).Delete

    Dim oCC As ContentControl
    Set oCC = ActiveDocument.ContentControls.Add(wdContentControlRichText, _
              Selection.Range)
    oCC.SetPlaceholderText , , "My placeholder text is here."
    oCC.Title = "Concept"
End Sub

【问题讨论】:

  • 如果您在应用所需格式时录制宏,则可以查看宏录制器创建的 vba 模块,它将显示您需要的代码。

标签: vba ms-word word-style


【解决方案1】:

如果你已经创建了样式,你可以像这样分配它:

oCC.DefaultTextStyle = "style_name"

现在,如果没有,您必须先添加您的 style。比如:

ActiveDocument.Styles.Add Name:="MyStyle1", Type:=wdStyleTypeCharacter
With ActiveDocument.Styles("MyStyle1").Font
    .Name = "Arial"
    .Size = 12
    .Bold = True
    .Color = RGB(255, 0, 0) 'you can use RGB here
End With

oCC.DefaultTextStyle = "MyStyle1"

【讨论】:

  • 太棒了。我可以使用我已经添加到文档中的样式,但是知道如何添加样式也很好,我尝试了两种方法并且它有效,我可能会通过添加样式来结束它,由于各种原因可能会更好。非常感谢。
  • @user3762977 Np,是的,添加您的样式是可以的。但请注意,如果样式已经存在,则会产生错误。因此,请确保在添加之前添加错误处理程序或先遍历现有样式(如果它已经存在)。
猜你喜欢
  • 2018-04-16
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2012-01-02
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2012-09-11
相关资源
最近更新 更多