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

在VBA for Word 2010中创建富格文本控件字段,vba,word-2010,Vba,Word 2010,我有一个控制字段,动态添加某些文本。到目前为止,这种方法效果很好。问题是,在一个文本中,我有一个输入字段,用户可以在其中键入文本 我需要将表单文本输入字段硬编码到VBA代码中。这是如何实现的?或者有人能给我指出正确的方向吗 在下面的代码段中,我需要用VBA输入字段替换[InputField] ActiveDocument.SelectContentControlsByTitle("Bottom").Item(1).Range.Text = _ "Some Text" & vbNewLin

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

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

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

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

我不知道你所说的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

通过使用代码,我看不到表单输入字段。此外,我还有一个问题,我有一个“文本[forminput]文本”,而不仅仅是“文本[forminput]”。正如我所写的,我不知道你所说的输入字段是什么意思。按ALT+F9可以检查是否存在表单输入字段。请参阅我编辑的答案“文本[forminput]文本”。效果很好,谢谢。您知道如何设置标题(ID),以便通过ActiveDocument访问该字段。选择ContentControlsByTitle(“myField”)我需要通过vba访问该字段,因为“底部”内容被锁定,因此我需要移除特定表单输入字段的锁定。我不明白您到底需要什么。上面代码中的字段是如何插入的“表单输入字段”。表单输入字段没有要设置的标题或ID。它们也没有要设置的灰色默认文本。您的“底部”ContentControl中是否需要ContentControl?请您提出新问题并在此处发布链接。