Apuntes Word

Campos, marcadores y referencias cruzadas en Word

Los campos son como variables en Word, se pueden sustituir por otros valores.

  • Creación de un campo (CTRL-F9)
  • Cambio Valor/Formula de un campo (SHIFT-F9)
  • Cambio Valor/Formula de todos los campos en el formulario  (ALT-F9)

Los marcadores, son ubicaciones exactas en el documento, que CONTIENEN datos, ya sea texto o campos o cualquier cosa. Para poder ver donde están los marcadores podemos hacer:

Boton Office/Opciones/Mostrar contenido de documento/Mostrar marcadores.

La referencia cruzada repite diferentes datos como, otros campos, marcadores, etc – en forma de campos, que se pueden referenciar cuando se crea la propia referencia.

Repetir campos en el documento

La idea es introducir un texto y que repita a lo largo del mismo. Tenemos 2 maneras de hacer esto, con macros y sin ellas:

Sin macros:

Creamos un campo (CTRL-F9) y dentro le ponemos:

{fillin «Pregunta dato»}  – Esto hace que el word pregunte por el valor 

Luego seleccionamos este campo completo y le insertamos un marcador Insertar/Marcador – y le damos un nombre.  Esto consigue que el marcador (ubicación específica) tenga una variable asignada (campo fillin).

Luego insertaremos una referencia cruzada del tipo Marcador y con referencia al texto del marcador, indicando el nombre del marcador que queremos repetir, tantas veces como se necesite. También podemos insertar dicha referencia insertando un campo con el nombre del marcador o REF [marcador].

Y por último guardar el documento como plantilla. Al ejecutarlo nos pedirá el valor del campo y lo repetirá donde le hayamos dicho.

Con macros:

Hay que bajar el nivel de seguridad de las macros, esto se graba en la plantilla normal.dot por lo que sólo se hace una vez y es necesario para la ejecución de una macro a la apertura del documento;

  1. Haz clic en Herramientas -> Macro -> Seguridad.
  2. Activa la opción «Medio», y acepta el cuadro de diálogo.

Partimos de la plantilla del documento hecha y terminada, es decir, sólo tenemos que insertar los campos donde se insertará el texto automáticamente.

Pulsamos Control + Inicio. para situarnos en la primera variable si existiera. (OJO para ver donde están los campos de petición y los de inserción pulsar ALT+F9)

Vamos situándonos donde queremos poner la/s variables del documento y pulsamos Control + F9 aparecerá un campo delimitado por llaves entre las cuales escribiremos:

  • { ASK slug «Nombre a mostrar» } y se pulsa F9
    Esto creará un cuadro de diálogo para asignar un valor a la variable «slug», mostrando como titulo del diálogo «Nombre a mostrar» .

Luego situarse en las partes del documento donde vaya ese dato y pulse nuevamente Control + F9 donde se escribirá:

  •  { slug }
    Si pulsa F9, se sustituirá el valor que hayamos introducido en el diálogo anterior.

Hay que repetir este proceso con tantas variables como tenga el documento. Es independiente introducir los valores de todas las variables y luego las variables que viceversa o incluso combinando los procesos (como se ha explicado).

Para automatizar el proceso al abrir el fichero se hará lo siguiente:

Vamos al editor de VBA (Herramientas/Macro/Editor de VBA) y vamos explorador de proyectos donde se verá una estructura jerárquica parecida a la lista de carpetas del Explorador de Windows.

Se abre el objeto «Project (TuDocumento)» – Microsot Word Objetos – ThisDocument (doble click) y en el editor se pega el siguiente código:

Private Sub Document_Open()
   Selection.WholeStory
   Selection.Fields.Update
End Sub

Grabar y salir.

Abre nuevamente tu documento. Debería preguntar por el nombre de las variables y su valor.

OJO: Esta automatización da un error cuando se lanza con un formulario bloqueado (candadito en la barra de herramientas de formularios). Para proteger el formulario después de la automatización agregar estas líneas al script anterior:

If ActiveDocument.ProtectionType = wdNoProtection Then
   ActiveDocument.Protect Type:=wdAllowOnlyFormFields, _
   NoReset:=True
Else
   ActiveDocument.Unprotect Password:=""
End If

Extraído de:
http://www.compartir-tecnologias.es/como-repetir-campos-formularios-automaticamente-ayuda-205353932.html

http://support.microsoft.com/kb/191028/es