Cómo cambiar el orden de tabulación en formularios de Microsoft Word (VBA)
El orden de tabulación (TabIndex) define la secuencia en que el cursor salta entre controles (cuadros de texto, botones, listas) al presionar Tab en un formulario de Word (UserForm VBA). Un orden lógico (arriba→abajo, izquierda→derecha) mejora usabilidad drásticamente.
Crear formulario de ejemplo (Si no tiene uno)
- Desarrollador > Visual Basic (Alt+F11).
- Insertar > UserForm.
- Cuadro de herramientas (Ctrl+T) > arrastre controles:
3 TextBox (TextBox1, TextBox2, TextBox3)
1 CommandButton (CommandButton1) - Por defecto, TabIndex se asigna en orden de creación (último creado = 0). El orden de tabulación será inverso al visual (abajo→arriba).
Cambiar TabIndex: Método Propiedades (Estándar)
- En editor VBA, seleccione UserForm.
- Presione F4 para abrir Ventana Propiedades.
- Seleccione cada control (clic en él o combo superior en Propiedades).
- Modifique propiedad TabIndex (número entero ≥ 0):
0 = Primer foco al abrir formulario
1, 2, 3... = Orden secuencial al presionar Tab - Ejemplo orden lógico (arriba→abajo):
TextBox1 (Nombre) → TabIndex = 0
TextBox2 (Email) → TabIndex = 1
TextBox3 (Teléfono) → TabIndex = 2
CommandButton1 (Enviar) → TabIndex = 3
Método rápido: Ver orden de tabulación gráfico
- En editor VBA con UserForm visible: Ver > Orden de tabulación (o botón Orden de tabulación en barra herramientas UserForm).
- Aparecen números azules en cada control.
- Clic en números en el orden deseado (1, 2, 3...). Word reasigna TabIndex automáticamente.
- Esc para salir.
Propiedades relacionadas importantes
| Propiedad | Función | Valor típico |
|---|---|---|
| TabIndex | Orden en secuencia Tab | 0, 1, 2... |
| TabStop | ¿Recibe foco con Tab? | True (sí) / False (saltar, ej. etiquetas Label) |
| TakeFocusOnClick | ¿Tomar foco al clic? | True (botones), False (labels) |
| Cycle (UserForm) | Comportamiento al final | fmCycleAllForms (cicla todo), fmCycleCurrentForm (solo este form) |
