Pregunta

Tengo un campo de control donde agrego dinámicamente cierto texto.Eso funciona bien hasta ahora.El problema es que en un texto tengo un campo de entrada donde el usuario puede escribir texto.

Necesito codificar el campo de entrada de texto del formulario en el código VBA.¿Cómo se logra esto?¿O alguien puede indicarme la dirección correcta?

En el siguiente fragmento de código necesito reemplazar el [InputField] por un campo de entrada de VBA.

ActiveDocument.SelectContentControlsByTitle("Bottom").Item(1).Range.Text = _
"Some Text" & vbNewLine & _
"Some Text" & vbNewLine & _
"Some Text" & vbNewLine & _
"Text [InputField] Text"
¿Fue útil?

Solución

No estoy seguro de lo que quieres decir con campo de entrada de VBA.Creo que te refieres a "Campo de entrada del formulario".Si es así, probablemente esa sea una solución a su problema:

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
Licenciado bajo: CC-BY-SA con atribución
No afiliado a StackOverflow
scroll top