Una aplicación práctica: Diseño de un formulario en VBA
Nuestra primera aplicación práctica consistirá en llenar un formulario que tiene datos fijos y otros variables. En este ejemplo programaremos un (tétrico) certificado de autopsia. Cualquiera que tenga nociones del Visual Basic "normal" lo podrá programar sin mayor dificultad, aún alguien con cero conocimiento podría hacerlo, claro que se tendrá que cabecear un poco, pues una explicación demasiado detallada resultaría aburrida para la audiencia promedio de esta página.
Lo primero es abrir un nuevo documento del word y con "ver" "barras de herramientas" "Formularios" hacemos aparecer la barra de formularios que nos permitirá colocar los campos variables, la barra es más o menos así:
Luego escribimos el formulario y para insertar los campos variable (indicados con sombra) usamos el primer botón de la barra de Formularios, el que tiene las letras "ab", si al hacer click en el botón "ab" aparentemente no pasa nada, es que necesitamos sombrear los campos para verlos con más facilidad, para ello usamos el penúltimo botón de sombreado. Así nos queda un documento como este:
Luego nos vamos a "Herramientas" "Macros" "Visual Basic" como muestra la figura:
Con lo que aparece el entorno de desarrollo del VBA, Con "Insertar" "Formulario" insertamos el UserForm1 como muestra la figura y luego desde la caja de herramientas escogemos los label, los combobox commandbuttom y los textbox, que colocamos en el formulario tal como muestra la figura siguiente:
Ya estamos casi listos y solo nos resta programar los distintos componentes que hemos colocado en el formulario, para colocar el código simplemente hacemos doble click sobre el componente y aparecerá una ventana con el privatesub (....) end sub, entre esas dos instrucciones (que las coloca el entorno) escribimos nuestros códigos, que en este caso podrían ser algo asi:
Private Sub CommandButton1_Click() rem esta es la instrucción cuando se apreta el botón "Ok" rem una vez ingresados todos los datos rem sirve para llenar los campos variables Selection.GoTo What:=wdGoToBookmark, Name:="tribunal" Selection.TypeText Text:="PRIMER" Selection.GoTo What:=wdGoToBookmark, Name:="ciudad" Selection.TypeText Text:="ARICA" Selection.GoTo What:=wdGoToBookmark, Name:="fecha" Selection.TypeText Text:=TextBox1.Text Selection.GoTo What:=wdGoToBookmark, Name:="medico" Selection.TypeText Text:=ComboBox1.Text Selection.GoTo What:=wdGoToBookmark, Name:="rol" Selection.TypeText Text:=TextBox3.Text Selection.GoTo What:=wdGoToBookmark, Name:="fallecido" Selection.TypeText Text:=TextBox2.Text Selection.GoTo What:=wdGoToBookmark, Name:="juez" Selection.TypeText Text:=ComboBox2.Text Selection.GoTo What:=wdGoToBookmark, Name:="secretario" Selection.TypeText Text:=ComboBox3.Text Selection.GoTo What:=wdGoToBookmark, Name:="medico2" Selection.TypeText Text:=ComboBox1.Text Unload UserForm1 End Sub Private Sub UserForm_Initialize() Rem con esto le damos valores a los label y llenamos los combos UserForm1.Caption = "Autopsia" Label1.Caption = "MEDICO" 'combo1 Label2.Caption = "JUEZ" 'combo2 Label3.Caption = "SECRETARIO" 'combo3 Label4.Caption = "MOVIMIENTO" 'combo4 Label5.Caption = "FECHA" 'textbox1 Label6.Caption = "FALLECIDO" 'textbox2 Label7.Caption = "ROL" 'textbox3 Label8.Caption = "" 'textbox4 Label9.Caption = "" 'textbox5 Label10.Caption = "" '´textbox6 TextBox4.Visible = False TextBox5.Visible = False TextBox6.Visible = False TextBox1.Text = Date ComboBox4.Text = "SUM SOLICITA INF AUTOPSIA" ComboBox1.AddItem "CARLOS VILLAVICENCIO SILVA" ComboBox1.AddItem "ADRIANA BARRIENTOS ESPINOZA" ComboBox2.AddItem "JORGE QUIÑONES GARAT" ComboBox2.AddItem "HECTOR GUTIERREZ MASSARDO" ComboBox3.AddItem "HECTOR GUTIERREZ MASSARDO" ComboBox3.AddItem "JULIO MAZUELOS RAMOS" ComboBox1.Text = ComboBox1.List(0) ComboBox2.Text = ComboBox2.List(0) ComboBox3.Text = ComboBox3.List(0) End Sub
Por último para colocar un botón que haga partir el macro usamos "Herramientas" "Personalizar" "Comandos" "Macros", deberá aparecer algo más o menos así:
Con el botón izquierdo arrastramos el macro que aparece en la ventana de comandos hacia cualquier barra de herramientas (si no aparece ningún macro hay que buscar otras ubicaciones en el combo inferior "Guardar en" ). Luego para cambiar el aspecto del botón editamos sus propiedades haciendo clic derecho sobre él.
Finalmente probamos que todo funcione Ok (haciendo clic sobre el botón debe partir el macro y funcionar correctamente) y grabamos todo como una plantilla, (con "Guardar Como") de modo que cada vez que la abramos se genere un documento diferente (no se sobreescribe). Bueno, este es solo un ejemplo básico pero perfectamente se pueden hacer formularios usando tablas, validando las entradas que hace el usuario y mil pequeños detalles que pueden ir agregando ustedes mismos para practicar. ¿Vieron que fácil es?
La plantilla completa, con unos pocos adornos se puede bajar haciendo Clic Aquí