varias - ¿Cómo puedo construir campos de Word con VBA?
repetir texto automáticamente en word. con marcadores y referencias cruzadas. (2)
Además de solo insertar y analizar texto en un campo de Word en blanco, ¿hay alguna manera de generar programáticamente campos y códigos de campo definidos por el usuario en mis propias plantillas con VBA? Además, ¿hay alguna manera de hacer que estos campos aparezcan en la lista de campos disponibles?
¿Qué tenías en mente? Es posible agregar propiedades de documento personalizadas ya sea manualmente o con VBA. Estos son los campos accesibles bajo DOCPROPERTY:
{ DOCPROPERTY "Test" /* MERGEFORMAT }
Puede usar una macro para asegurarse de que la propiedad personalizada se agregue a los documentos:
Sub AutoNew()
Dim objCustomProperties As DocumentProperties
Set objCustomProperties = ActiveDocument.CustomDocumentProperties
objCustomProperties.Add Name:="Test", _
Type:=msoPropertyTypeString, Value:="Blah", _
LinkToContent:=False
End Sub
Más información
Automacros: http://msdn.microsoft.com/en-us/library/aa263747(office.10).aspx
Descripción de las propiedades de documento personalizadas en Microsoft Office Word 2003: http://msdn.microsoft.com/en-us/library/aa537154.aspx
Recientemente desarrollé una solución que usaba los tipos de campo MACROBUTTON y ADDIN de Word.
Encontré MACROBUTTON útil porque la tercera entrada delimitada por espacios en blanco dentro del campo (programmatically field.code.text) se muestra dentro de Word. Esto permite a mis usuarios ver los campos a medida que se mueven. {MACROBUTTON NoMacro *} mostraría un "*" en Word, por ejemplo, y no haría nada cuando el usuario hizo doble clic en él, porque no he definido a propósito una macro llamada "NoMacro".
El campo ADDIN no se muestra (excepto cuando se activan los códigos de campo de visualización) y almacena una cadena oculta en su propiedad field.data. Usando este campo podría tener un campo oculto cuyo contenido no podría ser visto o modificado por los usuarios (excepto que si encienden "mostrar códigos de campo" pueden ver que es un campo ADDIN (pero no pueden ver / editar el propiedad "data"), y que pueden eliminar este campo como cualquier otro campo).
Encontré estas páginas útiles: