En este bloque veremos los siguientes apartados:

  • 2.1 Primeros pasos: activación: Pasos para activar las herramientas de automatización y preparar el archivo. 
  • 2.2 Accediendo al editor de formularios: Entendiendo las ventanas principales del editor. 
  • 2.3 Creando el formulario: Cómo añadir la interfaz y vincularla definitivamente a tu documento.
  • 2.4 El cuadro de herramientas: Un repaso práctico a los controles disponibles para recoger datos. 
  • 2.5 Colocando las piezas en el tablero: Métodos para colocar, mover y organizar los elementos en el lienzo.
  • 2.6 Entendiendo las propiedades: Cómo personalizar el aspecto y el comportamiento de cada objeto.
  • 2.7 Denominación de objetos: Consejos para nombrar tus controles con orden y sentido común.
  • 2.8 Creando el formulario: Definición de los objetos necesarios para un caso práctico.
  • 2.9 Probando el formulario: Cómo ejecutar el formulario para probarlo.


2.1 Primeros pasos: activación 


Para despertar ese motor de automatización vamos a seguir estos tres pasos fundamentales y extraordinariamente simples: 

1. Activar la pestaña “Programador”: Por defecto, las herramientas de automatización están ocultas. Para verlas: 
  • Haz clic derecho en cualquier parte de la cinta de opciones (la barra superior de Word). 
  • Selecciona Personalizar la cinta de opciones.
  • En la columna de la derecha, marca la casilla Programador o Desarrollador.
  • Pulsa Aceptar.


*NOTA: También puedes acceder seleccionando en la parte superior la casilla Archivo > Personalizar la cinta de opciones > marcando en la columna de la derecha la casilla Programador o Desarrollador > Aceptar.


2. Habilitar las macros: Una macro es una serie de acciones que grabas una vez para que un sistema las repita automáticamente a tu elección. Word bloquea esta mecánica por defecto, con lo que debemos darle permiso: 
  • Dentro de la nueva pestaña Programador/Desarrollador, busca el botón Seguridad de macros.
  • Selecciona la opción Habilitar todas las macros.


3. Crear un archivo de plantilla (.dotm): Para que nuestro formulario y su código funcionen siempre, no podemos guardar el archivo como un documento normal (.docx). 
  • Ve a Archivo > Guardar como.
  • En el desplegable de tipo de archivo, elige Plantilla habilitada con macros de Word (*.dotm). Esto es crucial no solo a efectos de usar el código, sino también para cada vez que queramos probar el formulario.

*NOTA: Haz una prueba: crea tu archivo y guárdalo como prueba.dotm en la carpeta que quieras. Ahora, ve a la ubicación donde lo has guardado y haz doble clic sobre él. Verás que lo que se abre no es el archivo que has creado, sino una copia del mismo llamado Documento 1. Sin embargo, si haces clic derecho y seleccionas abrir, verás que ahora sí que se abre tu archivo prueba.dotm. Esto es especialmente útil a efectos de crear formularios, pues te permite crear un archivo sin afectar a la plantilla base, que seguirá siempre inalterada salvo cuando queramos modificar algo de su contenido, en cuyo caso bastará con acceder con el clic derecho. Más adelante volveremos a hacer referencia a esta distinción.


2.2 Accediendo al editor de formularios 


Con la pestaña Programador ya visible, es el momento de cruzar la puerta hacia el editor de formularios. Para ello, basta con hacer clic en el botón Visual Basic que verás a la izquierda de todo en la pestaña Programador (o pulsar Alt + F11).



Una vez accedas al entorno de programación, NO TE ASUSTES. Así es, no te asustes cuando veas la pantalla que se te despliega, pues pese a su apariencia, es del todo inofensiva. Es simplemente un entorno de trabajo que no ha cambiado mucho en décadas, pero que sigue siendo igual de eficaz. 

Para que no te sientas perdido entre tantas ventanas, vamos a centrarnos en las tres piezas que realmente usaremos:


  1. Explorador de proyectos (arriba a la izquierda): Aquí verás tus archivos de Word abiertos, así como los formularios asociados a cada documento. 
  2. Ventana de propiedades (abajo a la izquierda): Aquí es donde cambiaremos las atributos de nuestros objetos. 
  3. El lienzo (centro): Al principio estará vacío, pero aquí es donde dibujaremos nuestro formulario.

*NOTA: Si al acceder no ves las ventanas de Proyecto (1) y/o Propiedades (2), basta con acceder a Ver, y seleccionar Explorador de proyectos y Ventana de propiedades.

2.3  Creando el formulario


Lo primero que hay que hacer es, sencillamente, decirle a Word que queremos crear un formulario asociado a nuestro archivo. Para ello: 
  1. Busca en el menú superior la opción Insertar.
  2. En el desplegable que aparece, selecciona UserForm.



¡Y ya está! Verás que en el centro de la pantalla aparece un cuadro gris punteado. Lo que ha aparecido es tu formulario en blanco, el lienzo donde empezaremos a construir nuestra herramienta. Al realizar este paso, le estamos indicando a Word que este archivo concreto llevará asociado un formulario de VBA.


*NOTA: Es posible que a la que crees el formulario, y empieces a colocar objetos, en algún momento hagas doble clic sobre ellos y te cambie la ventana del formulario por otra. Para volver al formulario solo tienes que hacer doble clic sobre el objeto UserForm que se ha creado en la ventana Proyecto situada en la parte superior izquierda que anteriormente identificábamos con el número 1.


2.4 El cuadro de herramientas 


Cuando abras tu UserForm, verás una pequeña ventana flotante bajo la rúbrica “Cuadro de herramientas”. Lo que contiene son tus materiales de construcción:


*NOTA: Si dicho cuadro de herramientas no te ha aparecido por defecto, basta con acceder a Ver, y seleccionar Cuadro de herramientas.

  1. Seleccionar objetos (la flecha): No es un control en sí mismo, sino la herramienta que te permite seleccionar, mover y cambiar el tamaño de los elementos creados.

  2. Etiqueta (Label): Es texto fijo. Se usa para dar instrucciones o nombrar otros campos. Ejemplo: “Introduzca su DNI:”. El usuario no puede escribir en ella.

  1. Cuadro de texto (TextBox): El rey del formulario. Es el hueco donde el usuario escribe la información que necesitamos capturar.


  1. Cuadro combinado (ComboBox): Lista desplegable de una única opción seleccionable.



  1. Cuadro de lista (ListBox): Muestra una lista de opciones. A diferencia del ComboBox, aquí se pueden seleccionar varias opciones a la vez.


  1. Casilla de verificación (CheckBox): El típico cuadrado para marcar con un “tick”. Ideal para opciones de tipo “Sí/No” o para elegir varios elementos de una lista.


        7. Botón de opción (OptionButton): El típico círculo que se rellena.



  1. Botón de alternancia (ToggleButton): Un botón que al pulsarlo se queda “hundido” y al volver a pulsarlo sube. Funciona como un interruptor.


  1. Marco (Frame): Es un objeto al que ellamaremos contenedor, pues permite agrupar visualmente en su interior otros controles. Es muy útil para organizar el diseño y para crear diferentes espacios visuales.


  1. Botón de comando (CommandButton): El botón al que podemos asociar la ejecución de alguna tarea programada.



  1. Multipágina (MultiPage): Es un objeto contendor que se caracteriza por tener varias páginas, como un archivador.




2.5  Colocando las piezas en el tablero


Imagina que ese cuadro gris punteado que ha aparecido al crear el formulario es el típico panel de corcho en el que colocábamos nuestras fotografías y recuerdos.



Las herramientas que hemos visto antes (etiquetas, cuadros de texto, botones) son las piezas que vamos a ir “pinchando” en ese corcho para darle forma a nuestra aplicación.


Lo mejor de todo es que no hace falta escribir ni una sola línea de código para diseñar. Para poner cualquier elemento en tu formulario, tienes dos formas de hacerlo:

  1. Hacer clic y dibujar: Haz clic en el icono que quieras del Cuadro de herramientas (por ejemplo, la “A” de etiqueta). Luego, ve al panel central o lienzo, haz clic y, sin soltar, arrastra el ratón hasta que la pieza tenga el tamaño que desees.
  2. Clic y colocar: Simplemente haz clic en el icono de la herramienta y luego haz un solo clic sobre el formulario. Word colocará la pieza con un tamaño estándar automáticamente.




2.6  Entendiendo las propiedades



Una vez que has colocado un objeto en tu “panel de corcho” (el UserForm), necesitas definir cómo se ve y cómo se comporta. Para eso usamos la Ventana de Propiedades. Es, en esencia, la ficha de identidad de cada pieza. Estas son las propiedades fundamentales que manejarás:



  • Name: Es el nombre interno del objeto, su “DNI” para el código.
  • Caption: Es lo que el usuario leerá escrito sobre un botón o una etiqueta: “Introduzca su apellido”, “Enviar Datos”, etc.
  • Font: Al pulsar los tres puntos que se muestran, puedes cambiar el tipo de letra, ponerla en negrita o ajustar su tamaño.
  • BackColor y ForeColor: La primera define el color de fondo del objeto y la segunda el color de la fuente.
  • Visible: Si la pones en False, el objeto existe, pero el usuario no lo ve hasta que el código decida mostrarlo. Es una propiedad de “Sí o No” (True o False).
  • Enabled: Sirve para activar o desactivar un objeto.
  • TextAlign: Te permite alinear el texto (izquierda, centro o derecha) para que visualmente todo el formulario quede simétrico y profesional.
  • Value: Representa el contenido o el estado real del objeto en cada momento. Si se trata de un cuadro de texto, su "Value" será el texto que se haya escrito, si es un botón, nos indicará si está activado o no.
  • Height y Width: Aunque puedes estirar los objetos con el ratón, aquí puedes definir su medida exacta.

2.7  Denominación de objetos



Cuando arrastras un cuadro de texto al formulario, Word lo bautiza automáticamente como TextBox1. Si añades otro, será el TextBox2. Al principio parece inofensivo, pero cuando tu formulario tiene decenas de campos y llegas a la fase de escribir el código, te aseguro que no recordarás si el TextBox14 era el nombre del procurador o la cuantía de la multa (créeme, lo digo por experiencia).

Para evitar este caos, hay que renombrar los objetos de forma eficiente. Existen múltiples sistemas de nominación de variables, y yo empecé por utilizar la denominada notación húngara, consistente en usar un prefijo indicativo del objeto, seguido de una explicación de su contenido. Aquí tienes los prefijos que puedes aplicar a cada una de las herramientas que hemos visto:

  • lbl para las Etiquetas (Label):
    • Ej. lblDniUsuario.
  • txt para los Cuadros de texto (TextBox):
    • Ej. txtNombreInvestigado.
  • cmb para los Cuadros combinados (ComboBox):
    • Ej. cmbTipoDelito.
  • lst para los Cuadros de lista (ListBox):
    • Ej. lstOpcionesMenu.
  • chk para las Casillas de verificación (CheckBox):
    • Ej. chkSuspensionPena.
  • opt para los Botones de opción (OptionButton):
    • Ej. optGenero.
  • tgl para los Botones de alternancia (ToggleButton):
    • Ej. tglInterruptor.
  • fra para los Marcos (Frame):
    • Ej. fraDatosPersonales.
  • cmd para los Botones de comando (CommandButton):
    • Ej. cmdGenerarSentencia.
  • mpg para el Multipágina (MultiPage):
    • Ej. mpgPasosFormulario.
*NOTA: A la hora de nombrar variables, VBA no va a admitir espacios ni caracteres especiales. En caso de introducir alguno de ellos, Word nos advertirá que el nombre empleado “No es un nombre de objeto permitido”.

Debo reconocer que, hoy en día, esta forma de nombrar puede considerarse un poco superada. Por lo que he podido leer en varios foros, muchos programadores defienden que, en realidad, basta con que el nombre sea significativo del papel que desempeña el objeto en el programa, es decir, nombres semánticos. Por ejemplo, llamar a un cuadro de texto simplemente “NombreAcusado” en lugar de “txtNombreAcusado”.

En cualquier caso, y desde mi más absoluta inexperiencia, me he dado cuenta de que estos prefijos ayudan mucho a quien no es profesional de la informática. Te dan una seguridad visual inmediata al saber con qué tipo de herramienta estás tratando. Sea cual sea el método que elijas, lo importante es que el nombre te ayude a identificar el dato rápidamente.


2.8 Creando el formulario


Con tal de comprender bien cómo funciona el mundo de la programación en Word VBA, vamos a ir poniendo en práctica paso a paso todo lo que vayamos aprendiendo mediante la elaboración de un formulario de ejemplo.
Podría haberos preparado una guía técnica tradicional, explicándoos de forma aséptica y profesional cómo funciona cada línea de código, pero ni tengo el nivel requerido, y para eso ya tenéis mil tutoriales en YouTube.
Mi intención es que, paso a paso, vayamos creando juntos un formulario real para que veáis cómo funciona esto de verdad, sin rodeos. Por ello, imaginemos que estamos diseñando un formulario para dictar autos que resuelven la prórroga de las medidas de alejamiento, una resolución relativamente común en un Juzgado de lo Penal.
Para ello, vamos a usar estos objetos:
  1. ComboBox (cmbDecision): Con las opciones “Prorrogar” o “Denegar”.
  2. ToggleButton 1 (tglAproximación): Para la medida de alejamiento.
  3. ToggleButton 2 (tglComunicacion): Para la medida de comunicación.


Quiero que te fijes detenidamente en cómo hemos denominado los objetos en el GIF superior. Observa que no solo hemos usado la denominación húngara, sino que hemos nombrado al desplegable como “cmbDecision” (sin tilde) y, sin embargo, al botón de alternancia lo hemos llamado “tglAproximación” (con tilde). Esta elección no es baladí, sino que se ha tomado a propósito para ilustrar un extremo importante.
Uno de los mayores quebraderos de cabeza que tuve cuando empecé —y lo que más tiempo me hizo perder— fue no entender que Word es implacable con los nombres. La denominación del widget es su “DNI”: si en la ventana de propiedades lo llamaste de una forma, en el código tienes que referirte a él literalmente igual. Si tecleas cmbDecisión con tilde en el código, pero el objeto se llama cmbDecision, el sistema se colapsará y te lanzará un error. Asegúrate de que el nombre que creas y el que escribes sean espejos exactos.
*NOTA: Te aconsejo que seas especialmente celoso/a con el control de los nombres que insertas. Al empezar a programar, la mayor parte del tiempo que estuve tirándome de los pelos porque el código no funcionaba era debido a que el nombre que había puesto en el código no se correspondía con el del objeto, aunque fuera por una sola letra, una mayúscula, una tilde...
En cualquier caso, ten en cuenta que esta estructura que hemos planteado es deliberadamente sencilla porque nuestro objetivo primordial es que comprendas los fundamentos técnicos sin perderte en la complejidad del diseño.

Podrías diseñar formularios mucho más avanzados utilizando cualquiera de los materiales de construcción que hemos visto en el cuadro de herramientas, como casillas de verificación, cuadros de lista o marcos de agrupación, según las necesidades de tu proyecto.

Al final, y a los efectos de diseño, lo importante no es la cantidad de objetos que coloques, sino que cada uno de ellos esté correctamente nombrado y configurado para que el sistema sepa exactamente de dónde extraer la información cuando llegue el momento de la verdad.

Ahora que ya tenemos nuestro "corcho" con las piezas colocadas y bien bautizadas, llega el momento de cruzar al otro lado para que estos objetos cobren vida. Hasta ahora solo tenemos un dibujo estático, pero en el siguiente bloque vamos a construir el sistema nervioso que permitirá que el formulario sea realmente inteligente y reaccione a cada una de tus decisiones jurídicas.



2.9 Probando el formulario



Una vez que has empezado a colocar tus piezas, sentirás la curiosidad de ver cómo lucen fuera del editor, y para ello el entorno de Visual Basic pone a tu disposición tres mandos fundamentales situados en la barra de herramientas superior que funcionan de forma idéntica a los de cualquier reproductor de música.



El primero de ellos es el botón de Play, representado por un pequeño triángulo verde, que es el encargado de lanzar el formulario en modo de prueba tal y como lo vería el usuario final en su día a día.


Al pulsarlo, Word saltará automáticamente al escenario real para que puedas interactuar con tus desplegables y botones, comprobando si su comportamiento visual y su funcionamiento son los que habías imaginado.

Justo a su lado encontrarás el botón de Pausa, identificado por las dos barras verticales, que resulta extremadamente útil cuando el código se detiene debido a un error o cuando simplemente quieres congelar la ejecución para inspeccionar qué está pasando en un momento concreto del programa.

Finalmente, dispones del botón Restablecer en forma de cuadrado azul, el cual actúa como un interruptor de apagado total, con el cual volverás al editor para que puedas seguir modificando las propiedades o escribiendo nuevas líneas de instrucciones.

Es importante acostumbrarse a usar este último botón para salir de las pruebas, ya que a veces el formulario puede quedarse bloqueado en la memoria y este cuadrado es la forma más limpia de resetearlo todo antes de realizar cualquier cambio técnico.
 

< BLOQUE I. Arquitectura del sistema

BLOQUE III. El Código >