VBA 在 Word 中:以编程方式添加具有样式的内容控件
VBA in Word: Programmatically add content control with a style
当使用 VBA 以编程方式将富文本内容控件添加到 Word .docm 时,是否可以为内容设置样式?
作为比较,如果我使用 Word Developer 工具栏手动创建内容控件,我可以 select "Use a style to format contents" 在内容控件的属性对话框中。我想要的结果和我那样做是一样的,除了我需要在代码中做。
这是我添加内容控件的代码,它是由单击命令按钮触发的,它还执行一些其他操作:
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
如果您已经创建了样式,您可以像这样分配它:
oCC.DefaultTextStyle = "style_name"
现在,如果没有,您必须先添加您的样式。类似于:
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"
当使用 VBA 以编程方式将富文本内容控件添加到 Word .docm 时,是否可以为内容设置样式?
作为比较,如果我使用 Word Developer 工具栏手动创建内容控件,我可以 select "Use a style to format contents" 在内容控件的属性对话框中。我想要的结果和我那样做是一样的,除了我需要在代码中做。
这是我添加内容控件的代码,它是由单击命令按钮触发的,它还执行一些其他操作:
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
如果您已经创建了样式,您可以像这样分配它:
oCC.DefaultTextStyle = "style_name"
现在,如果没有,您必须先添加您的样式。类似于:
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"