Cree un campo de control de texto enriquecido en VBA para Word 2010
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"
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