在VBA for Word 2010中创建富文本控件字段

时间:2012-09-29 14:49:40

标签: vba word-2010

我有一个控制字段,我可以动态添加某些文本。到目前为止效果很好。问题是在一个文本中我有一个输入字段,用户可以输入文本。

我需要将表单文本输入字段硬编码到VBA代码中。这是如何实现的?或者有人能指出我正确的方向吗?

在以下代码段中,我需要用VBA输入字段替换[InputField]

ActiveDocument.SelectContentControlsByTitle("Bottom").Item(1).Range.Text = _
"Some Text" & vbNewLine & _
"Some Text" & vbNewLine & _
"Some Text" & vbNewLine & _
"Text [InputField] Text"

1 个答案:

答案 0 :(得分:1)

我不确定VBA输入字段的含义。我认为你的意思是“表格输入字段”? 如果是这样可能是您问题的解决方案:

Sub TestInsertContentControl()
    Dim m_objRange                      As Range
    Dim m_objRangeInsertTextInput       As Range
    Dim m_objFormField                  As FormField

    Set m_objRange = ActiveDocument.SelectContentControlsByTitle("Bottom").Item(1).Range
    m_objRange.Text = "Some Text" & vbNewLine & _
    "Some Text" & vbNewLine & _
    "Some Text" & vbNewLine & _
    "Text  "

    Set m_objRangeInsertTextInput = m_objRange
    m_objRangeInsertTextInput.Start = m_objRange.End - 1
    m_objRangeInsertTextInput.End = m_objRange.End

    Set m_objFormField = m_objRangeInsertTextInput.FormFields.Add(Range:=m_objRange, Type:=wdFieldFormTextInput)

    m_objRangeInsertTextInput.Start = m_objFormField.Range.End
    m_objRangeInsertTextInput.End = m_objFormField.Range.End
    m_objRangeInsertTextInput.Text = " Some more Text"
End Sub