很抱歉,如果这个问题很简单,但对于我的生活,我无法弄清楚如何做某事。
我在Word中的表格中有一个单元格,我想以编程方式输入文本。在该文本内部,我需要一个内容控件。所以文本看起来像这样:
mytable.Cell(1,).Range.Text = What <color> is **this**?
其中<color>
等于内容控件,“this”为粗体。显然.Text
属性在这里不起作用,但是我无法弄清楚如何使用内容控件插入此字符串并在单词“this”上进行格式化。
有什么建议吗?
答案 0 :(得分:1)
我通常采用一步一步的方法......
Dim cc As Word.ContentControl
Dim rng As Word.Range
Set rng = ActiveDocument.Tables(1).Cell(2, 3).Range
' Exclude the end of cell marker
rng.SetRange rng.Start, rng.End - 1
rng.Text = "What "
rng.Collapse direction:=Word.WdCollapseDirection.wdCollapseEnd
Set cc = rng.ContentControls.Add(wdContentControlText, rng)
With cc
' set what you need
' the following are just names.
.Tag = "color"
.Title = "color"
End With
' Word does not extend the range to include the CC
' We want to step beyond it
rng.SetRange cc.Range.End + 1, cc.Range.End + 1
Set cc = Nothing
rng.InsertAfter "is "
rng.Collapse direction:=WdCollapseDirection.wdCollapseEnd
rng.InsertAfter "this"
rng.Font.Bold = True
rng.Collapse direction:=WdCollapseDirection.wdCollapseEnd
rng.InsertAfter "?"
rng.Font.Bold = False
Set rng = Nothing
至于内容控制,这取决于你的意思。如果您只需要插入带有标题或标记“颜色”的控件,则上述内容就足够了。但是,如果您将控件连接到自定义XML数据存储,则需要使用.XmlMapping.SetMapping将其Xpath设置为指向商店中的正确项目。