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:

 

Una vez escrito e insertados los campos le ponemos nombres, seleccionando cada campo, click con botón derecho, Propiedades, Nombre. Así los campos quedan con nombres descriptivos como: tribunal, ciudad, fecha, medico, proceso, fallecido, etc.

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í