- Combina controles de contenido y ActiveX para entradas guiadas y flexibles.
- Valida datos con eventos (GotFocus, LostFocus, KeyPress) y ejemplos de VBA.
- Evita conflictos agrupando botones de opción con GroupName distinto.
- Protege el documento con “Rellenando formularios” para preservar el diseño.
Crear formularios que no solo se puedan rellenar sino que además guíen al usuario, validen los datos y mantengan el diseño intacto es perfectamente posible en Word. Con una combinación de controles de contenido y ActiveX, propiedades bien definidas, eventos y protección selectiva, puedes construir formularios realmente útiles para oficina, administración y documentación, y en casos complementarios puedes ver cómo crear formularios inteligentes en Excel.
En las próximas líneas verás cómo activar las herramientas necesarias, qué tipo de controles usar en cada caso, cómo validar entradas con eventos (por ejemplo, números o fechas), cómo agrupar opciones para que no interfieran entre sí y cómo proteger el documento para que solo se rellenen los campos. Todo con un enfoque práctico, explicado paso a paso y con algunos fragmentos de VBA que te ahorrarán tiempo.
Preparativos: pestaña Desarrollador, modo diseño y capas
Antes de empezar, asegúrate de que la pestaña Desarrollador está visible: ve a Archivo > Opciones > Personalizar cinta y marca la casilla de Programador/Desarrollador; confirma con Aceptar. Este paso es clave porque desde ahí accederás a los controles y sus propiedades.
Word permite insertar controles en dos capas distintas: la capa de texto (en línea) y la capa de dibujo (flotante). Si insertas desde el Cuadro de controles de forma normal, el control irá a la capa de dibujo; si mantienes pulsada la tecla Mayús al hacer clic en el control, lo insertas en línea con el texto. Esta diferencia importa porque los controles en línea se comportan como InlineShapes y los de la capa de dibujo como Shapes, lo que afecta a su posicionamiento y a cómo se acceden por código.
Un detalle de visualización: los controles ActiveX que queden en la capa de dibujo solo son visibles en la vista Diseño de impresión o en la vista Diseño Web. Si no los ves, cambia la vista. Activa también el Modo diseño en Desarrollador cuando quieras insertar o configurar controles, y desactívalo para probar su comportamiento real.
Elegir bien los controles: contenido vs ActiveX
Word ofrece dos grandes familias de controles. Por un lado están los controles de contenido (modernos) como Texto enriquecido, Texto sin formato, Selector de fecha o Lista desplegable. Por otro, los controles heredados/ActiveX como Botón de opción u otras entradas más avanzadas. Combinar ambos te da flexibilidad: contenido moderno para campos de texto y fechas, y ActiveX para comportamientos más ricos.
Para textos como Nombre, Apellidos, Edad o Teléfono, usa Texto sin formato si quieres entradas en una única línea, o Texto enriquecido cuando necesites permitir múltiples líneas o formato. Para la fecha, el control de contenido de tipo Selector de fecha es perfecto y se le puede ajustar el formato desde sus Propiedades.
Si necesitas que el usuario elija entre elementos predefinidos (por ejemplo, Sexo), la Lista desplegable de contenido es directa de configurar: abre sus Propiedades y añade las entradas que necesites. En Listas desplegables puedes mantener el control de lo que se rellena y evitar valores inesperados.
Cuando precises opciones de selección exclusiva (solo una a la vez), recurre a los Botones de opción (ActiveX). Para selecciones múltiples e independientes, utiliza Casillas. Estas se insertan desde Herramientas heredadas > Controles ActiveX, y después puedes ajustar sus propiedades y el texto que se muestra al lado.
Una herramienta menos conocida pero súper útil es el control de bloque de creación. Sirve para que el usuario elija entre bloques de texto predefinidos (por ejemplo, cláusulas alternativas). Insértalo desde la pestaña Desarrollador, coloca el cursor donde quieras y selecciona el Control de contenido de galería de bloques de creación; más tarde puedes configurar sus propiedades según tus necesidades.
Ejemplo práctico: ficha con datos personales y secciones
Una manera clara de organizar un formulario es usar una tabla con dos columnas: a la izquierda la etiqueta (Nombre, Fecha, etc.) y a la derecha el control. No es obligatorio, pero ayuda a alinear y mantener el diseño limpio.
Fecha: inserta un control de contenido de fecha. El texto de ayuda inicial tipo «haz clic para escribir una fecha» puede editarse para que resulte más claro. Desde Propiedades puedes elegir el formato de visualización (por ejemplo, dd/MM/yyyy) para que el dato quede homogéneo en todo el documento.
Nombre, Apellidos, Edad y Teléfono: para estos campos, Texto sin formato suele ser suficiente. Elige Texto enriquecido si prevés saltos de línea o quieres permitir formato. Lo importante es que elijas un tipo que se ajuste al comportamiento esperado del campo.
Sexo: usa una Lista desplegable de contenido. Entra en sus Propiedades y añade cada opción (p. ej., Femenino y Masculino). Esto evita confusiones y reduce errores de escritura, mejorando la calidad de los datos.
Grupo sanguíneo: para opciones mutuamente excluyentes, inserta Botones de opción (ActiveX) desde Herramientas heredadas > Controles ActiveX > Botón de opción. Cambia el texto que se muestra mediante Objeto del botón de opción > Modificar. Añade tantos como necesites (A+, A-, B+, B-, AB+, AB-, 0+, 0-), manteniendo la consistencia en el etiquetado.
Aficiones o servicios deseados: si quieres permitir marcar varias, inserta Casillas (ActiveX). Así el usuario puede seleccionar múltiples elementos sin conflictos. Puedes modificar su texto igual que con los botones de opción.
Alergias: aquí es habitual plantear una pregunta Sí/No con Botones de opción. Importante: si los de Alergias se desactivan cuando marcas un grupo sanguíneo, es porque Word está interpretando que todos pertenecen al mismo grupo lógico. Solución: asigna un GroupName distinto. Selecciona cada botón de opción de Alergias, entra en Propiedades y pon GroupName = Alergias para que estos se comporten como un grupo independiente.
Detalles de alergias u Observaciones: añade un control de contenido de Texto enriquecido para permitir una descripción libre en varias líneas. Es comodísimo para comentarios de contexto o anotaciones del usuario.
Propiedades clave y comportamiento de los ActiveX
En documentos Word, los controles ActiveX tienen eventos que puedes aprovechar. Word implementa de forma nativa GotFocus y LostFocus, y el resto de eventos específicos de cada control se comportan como en Microsoft Forms. Esto abre la puerta a validar campos justo cuando el usuario entra o sale de ellos.
Un matiz importante para programar: dentro del código de eventos de un control incrustado en el documento, la palabra clave Me hace referencia al documento, no al control. Por tanto, si quieres actuar sobre el control, puedes usar su nombre directo o navegar por los objetos del documento.
Además, recuerda la distinción de acceso por código: los controles en la capa de texto se exponen como InlineShapes, mientras que los de la capa de dibujo como Shapes. Elegir una u otra capa influye en cómo iterar y posicionar controles de forma programática.
Cuando no quieras que el usuario cambie el diseño del documento pero sí interactúe con los controles, lo adecuado es aplicar protección de edición. En versiones antiguas existía el botón Proteger formulario en la barra Formularios; en versiones actuales el flujo es Revisar > Restringir edición, algo que veremos en detalle más adelante.
Validación de datos: patrones prácticos en VBA
La validación da «inteligencia» al formulario. Puedes evitar letras en la Edad, impedir teléfonos con demasiados caracteres, forzar un formato de fecha correcto, etc. La clave está en enganchar los eventos adecuados de los controles ActiveX (y, si procede, de los de contenido mediante macros relacionadas).
Incrementos controlados con SpinButton: si quieres que la Edad o una cantidad suba/baje de uno en uno, añade un SpinButton (ActiveX) y un TextBox asociado. El siguiente ejemplo, muy simple, actualiza TextBox1 al pulsar el control:
Private Sub SpinButton1_SpinDown()
Me.TextBox1.Value = Me.TextBox1.Value - 1
End Sub
Private Sub SpinButton1_SpinUp()
Me.TextBox1.Value = Me.TextBox1.Value + 1
End Sub
Cambio de vista (útil al depurar): un botón puede cambiar a vista Imprimir y fijar el zoom, para revisar el resultado final del formulario. Este procedimiento Click se ejecuta al pulsarlo y ajusta la ventana activa:
Private Sub cmdChangeView_Click()
With Me.ActiveWindow.View
.Type = wdPrintView
.Zoom.Percentage = 100
End With
End Sub
Validación de números (Edad) en tiempo real: en el evento KeyPress/Change del TextBox de Edad, filtra cualquier carácter que no sea dígito. Así evitas desde el principio entradas erróneas, algo muy eficaz cuando se rellena rápido.
' En un TextBox ActiveX (por ejemplo, TextBoxEdad)
Private Sub TextBoxEdad_KeyPress(ByVal KeyAscii As MSForms.ReturnInteger)
If Not (KeyAscii >= 48 And KeyAscii <= 57) And KeyAscii <> 8 Then
KeyAscii = 0
End If
End Sub
Validación de fecha en la salida del campo: si usas un TextBox ActiveX para fecha (o mapeas el valor del control de fecha), comprueba con IsDate en el evento LostFocus. Si falla, marca el campo en rojo, muestra un aviso y devuelve el foco para que el usuario corrija el valor.
Private Sub TextBoxFecha_LostFocus()
If Not IsDate(TextBoxFecha.Text) Then
TextBoxFecha.BackColor = vbRed
MsgBox "La fecha no es válida. Usa el selector o formato dd/mm/aaaa.", vbExclamation
TextBoxFecha.SetFocus
Else
TextBoxFecha.BackColor = vbWhite
End If
End Sub
Teléfono con longitud fija: puedes chequear la longitud al salir del campo y permitir solo dígitos. Si necesitas guiones o espacios, puedes insertarlos automáticamente en el evento Change, generando una entrada uniforme.
Private Sub TextBoxTelefono_LostFocus()
Dim s As String
s = Trim(TextBoxTelefono.Text)
' Elimina caracteres no numéricos
Dim i As Long, limpio As String
For i = 1 To Len(s)
If Mid$(s, i, 1) >= "0" And Mid$(s, i, 1) <= "9" Then
limpio = limpio & Mid$(s, i, 1)
End If
Next i
If Len(limpio) < 9 Then
MsgBox "El teléfono debe tener al menos 9 cifras.", vbInformation
TextBoxTelefono.SetFocus
Else
TextBoxTelefono.Text = limpio
End If
End Sub
Listas controladas: con la Lista desplegable de contenido, añade las opciones desde Propiedades para evitar valores inventados. En ActiveX (ComboBox), también puedes cargar items por código en Document_Open para centralizar el origen de datos.
Private Sub Document_Open()
With Me.ComboBoxSexo
.Clear
.AddItem "Femenino"
.AddItem "Masculino"
End With
End Sub
Alertas discretas: no todo tiene que ser un MsgBox. Cambiar el color de fondo, mostrar un asterisco de advertencia cerca o deshabilitar botones de envío/impresión hasta que los campos estén correctos son tácticas menos intrusivas y más elegantes.
Cómo proteger el formulario para evitar cambios en el diseño
Una vez definidos y probados los controles, aplica restricciones para que el usuario pueda rellenar pero no alterar el documento. Ve a Revisar > Restringir edición. En el panel lateral, marca «Restricciones de edición» y elige «Rellenando formularios» en la lista. Después pulsa «Sí, aplicar la protección» y, si te conviene, establece una contraseña.
Con la protección activa, el usuario podrá interactuar con los controles (marcar casillas, elegir de listas, escribir en campos), pero no podrá mover tablas ni editar textos fijos. Es ideal cuando compartes formularios con clientes o con otros departamentos y quieres preservar el formato corporativo, o alojarlos en OneDrive.
Si necesitas editar de nuevo el diseño, usa «Suspender la protección» e introduce la contraseña. Procura guardar una copia sin contraseña en un entorno seguro por si te hiciera falta revertir cambios o reutilizar el documento como plantilla.
Bloques de creación: texto reutilizable y controlado
En muchos formularios hay textos que cambian en función del caso (p. ej., cláusulas alternativas). El control de bloque de creación te permite ofrecer al usuario una galería de textos predefinidos. Inserta el control desde Desarrollador, colócalo en la posición adecuada y, luego, configura sus Propiedades para que apunte a la galería correspondiente.
Un flujo habitual es preparar varias versiones del texto como controles de contenido de texto enriquecido y usar el bloque de creación como «contenedor» para escoger cuál insertar. Es una forma ordenada de gestionar contenidos repetitivos sin tener que copiar/pegar manualmente.
Consejos de uso, compatibilidad y mantenimiento
Nombra tus controles de forma clara (p. ej., TextBoxEdad, ComboBoxSexo). Facilita la lectura del código y evita colisiones al escribir validaciones. Cuanto más obvio sea el nombre, más rápido podrás mantener el formulario.
Si usas ActiveX, recuerda que dependen de la configuración de seguridad de macros. En equipos con políticas restrictivas, puede que sea necesario ajustar el Centro de confianza o firmar digitalmente el documento. Esto es importante cuando distribuyes formularios en entornos corporativos.
Prueba siempre con Modo diseño activado al configurar y desactívalo para ver el comportamiento real. Cambia a vista Diseño de impresión si no ves controles en la capa de dibujo; es una comprobación rápida que evita confusiones y te ahorra tiempo.
Para desarrollos más avanzados, ten presente la diferencia entre InlineShapes y Shapes a la hora de acceder por código, así como la geometría de tablas y márgenes. Un pequeño ajuste en el anclaje o en el ajuste de texto puede cambiar por completo el resultado visual, y considera también cómo integrar flujos con Microsoft Power Automate para trabajos repetitivos.
Si necesitas documentación adicional sobre eventos específicos de controles (por ejemplo, Change, Click, Enter, Exit), la referencia de Microsoft Forms complementa muy bien la guía de Word. Además, Word implementa correctamente GotFocus y LostFocus en documentos, lo que te permite diseñar validaciones y ayudas contextuales al entrar o salir del campo.
Para usuarios finales, añade instrucciones cortas junto a los campos (mediante el texto de marcador de posición de los controles de contenido). Un formulario con guías claras y validaciones discretas reduce errores y hace que el proceso de rellenado sea más rápido.
Cuando compartas formularios en PDF, recuerda que la interactividad de ActiveX se pierde. Si el destino es PDF rellenable, valora crear los campos directamente en PDF con programas para crear formularios PDF editables o mantener el flujo en Word para aprovechar los eventos y la lógica de validación.
Puedes armar formularios en Word que van mucho más allá de un simple documento: entradas guiadas, opciones agrupadas correctamente, datos limpios desde el primer intento y un diseño que permanece bajo control gracias a la protección de edición selectiva.
Redactor apasionado del mundo de los bytes y la tecnología en general. Me encanta compartir mis conocimientos a través de la escritura, y eso es lo que haré en este blog, mostrarte todo lo más interesante sobre gadgets, software, hardware, tendencias tecnológicas, y más. Mi objetivo es ayudarte a navegar por el mundo digital de forma sencilla y entretenida.