Este documento describe cómo crear un glosario interactivo en Word utilizando Visual Basic para Aplicaciones (VBA). Se utilizan controles ActiveX como un cuadro combinado y una etiqueta para mostrar definiciones al seleccionar términos. El documento explica agregar código VBA para cargar los términos en el cuadro combinado y mostrar definiciones, y proteger el formulario con contraseña.
1. Materia: Word.
Sección: Visual Basic para Aplicaciones (VBA).
Nivel de Dificultad: Avanzado.
Objetivo de la Práctica: Introducción a la programación VBA para Word.
En esta práctica vamos a utilizar el editor de código VBA y los Controles Active X de tipo cuadro
combinado y etiqueta para crear un glosario interactivo de términos de Word. Cada vez que
seleccionemos uno de los términos de la lista (combo superior), se mostrará su definición en el área
de texto (etiqueta inferior), tal como muestran las imágenes de resultado.
Finalmente vamos a proteger el formulario contra modificaciones mediante contraseña.
RESULTADO
2. PROCESO
En primer lugar tenemos que guardar el documento que contiene el código VBA con la extensión
.docm (archivo con macros).
En segundo lugar, vamos habilitar temporalmente todas las macros Archivo->Opciones->Opciones
de Word->Centro de Confianza->Configuración del centro de confianza->Habilitar todas las
macros…. Esta opción permite que se ejecuten todas las macros, por eso una vez que probemos
nuestro ejercicio, volvemos a cambiar la configuración de macros a la opción Deshabilitar todas las
macros con notificación.
La ficha "Programador" tiene que estar habilitada. Para ello vamos a Archivo->Opciones y en el
cuadro de diálogo "Opciones de Word" seleccionamos la opción "Personalizar cinta de opciones" y
habilitamos la ficha "Programador".
3. Añadimos en "Modo Diseño" los controles Active X que necesitamos, el combo (combobox) y la
etiqueta (label).
A continuación añadimos el código de forma que por un lado, al abrirse el documento (evento
Open) se cargue el combo con los términos, y por otro lado, cada vez que seleccionamos un ítem del
combo (evento Change) se identifique el ítem y se muestre en la etiqueta la definición
correspondiente a la elección.
4. Private Sub Document_Open()
'Add list entries to combo box. The value of each
'entry matches the corresponding ListIndex value
'in the combo box.
ComboBox1.AddItem "Combinación de correspondencia" 'ListIndex = 0
ComboBox1.AddItem "Complemento" 'ListIndex = 1
ComboBox1.AddItem "Diagrama en ciclo" 'ListIndex = 2
ComboBox1.AddItem "Diagrama en jerarquía" 'ListIndex = 3
ComboBox1.AddItem "Diagrama en lista" 'ListIndex = 4
ComboBox1.AddItem "Diagrama en matriz" 'ListIndex = 5
ComboBox1.AddItem "Campo combinado" 'ListIndex = 6
ComboBox1.AddItem "Consulta" 'ListIndex = 7
ComboBox1.AddItem "Gráficos apilados" 'ListIndex = 8
ComboBox1.AddItem "Lienzo de dibujo" 'ListIndex = 9
ComboBox1.AddItem "Línea huérfana" 'ListIndex = 10
ComboBox1.AddItem "Línea viuda" 'ListIndex = 11
ComboBox1.AddItem "Marcador" 'ListIndex = 12
'Set combo box to first entry
ComboBox1.ListIndex = 0
End Sub
Private Sub ComboBox1_Change()
Select Case ComboBox1.ListIndex 'item seleccionado.
Case 0
Label1.Caption = "COMBINACIÓN DE CORRESPONDENCIA:" + vbCrLf + _
"Un proceso utilizado para personalizar documentos individuales basados " + _
"en información de un origen de datos."
Case 1
Label1.Caption = "COMPLEMENTO:" + vbCrLf + _
"Una utilidad que añade una funcionalidad especializada a un programa."
Case 2
Label1.Caption = "DIAGRAMA EN CICLO:" + vbCrLf + _
"Un tipo de diagrama utilizado para representar una secuencia circular de pasos," + _
"tareas o eventos; o la relación de un conjunto de tareas, pasos o eventos con un " + _
"elemento nuclear central."
End Select
End Sub
Finalmente para proteger, mediante contraseña, el formulario contra cambios en el diseño vamos
a (Ficha)Programador->(Grupo)Proteger->Restringir edición->Restringir formato y edición.