Mi interés en el VBA partió de la necesidad de automatizar algunos trabajos típicos de oficina, creando plantillas para personas que no tenían el tiempo, ni las ganas de aprender nada aparte del manejo básico del procesador de textos.
Una de las aplicaciones más obvias es la automatización de documentos-tipo, con partes fijas y otras que pueden variar. Como vimos en la lección anterior, combinando los campos de formulario con los macros en VBA se puede lograr un alto grado de automatización de estas tareas con un mínimo trabajo de parte del usuario final.
Pero subsiste un problema práctico; que muchas veces el trabajo requerido para programar estas macros y mantenerlas (modificarlas) es tan grande que se hace muy difícil de implementar en entornos con muchos usuarios y donde se necesitan muchas plantillas de documentos distintos.
Enfrentado a este problema trabajando con uno de mis clientes (tribunales) pensé que el ideal sería programar una sola plantilla que permita al mismo operador crear y configurar las plantillas que vaya necesitando, el resultado de esto es el generador de formularios que aquí se muestra, desarrollado paso a paso:
Descripción de la plantilla
Todo el sistema está programado dentro de una sola plantilla de Word 97 (SR-1), lo que lo hace extremadamente portable y sencillo de mantener. Adicionalmente el sistema lleva un registro histórico de los documentos emitidos lo que permite que el funcionario lleve de manera automática un inventario de las causas de acuerdo a los formularios que estas generan.
Código Fuente
Haciendo click Aquí podrá acceder al código fuente completo, junto con el diseño de los formularios
Como se usa el sistema
La pantalla principal de la plantilla es una hoja normal del Word, en blanco, excepto por el botón de plantilla (con icono de balanza) en la barra de tareas
Al hacer click en el botón de plantilla aparece una lista con las plantillas disponibles entre las cuales se puede escoger (en este ejemplo están disponibles solo dos plantillas)
Al escoger, por ejemplo la plantilla "AUTOPSIA.DOT" se carga un formulario predeterminado con sus respectivos campos (TRIBUNAL, CIUDAD, FECHA_ACTUAL, MEDICO, ROL, MUERTO, JUEZ, SECRETARIO.
También se carga una ventana para el llenado de los campos de formulario con las correspondientes cajas de texto y combobox, que permitirán ingresar los datos al formulario, tal como se muestra en la siguiente figura
En este caso solo se pide el ingreso del ROL (número del proceso) y el nombre del muerto. El nombre del médico se escoge de uno de los que aparecen en el combobox.
Nótese que la plantilla no pide los datos para el tribunal, ciudad, nombre del juez y del secretario. Como estos datos son comunes y se usan en varias plantillas son ingresadas en un archivo aparte (también editable) como "datos fijos". Al ingresar estos datos la plantilla es llenada automáticamente como se muestra a continuación
Diseño de nuevas plantilla y edición de las ya existentes
La característica más importante del sistema es que permite automatizar el diseño de nuevas plantillas así como la modificación de las ya existentes. Ambas tareas pueden ser llevadas a cabo por el propio usuario sin requerir de mucho esfuerzo ni avanzados conocimientos.
Para editar una plantilla la existente (por ejemplo para agregarle un nuevo campo) pulsamos el botón 'configurar' que aparece tanto en la pantalla principal como en la de ingreso de datos, allí se cargará la pantalla de configuración
Esta pantalla nos muestra las posibilidades de diseño para nuestra plantilla, nos permite determinar que cajas de texto y que combobox tendrá la pantalla de ingreso de datos (las cuatro primeras cajas de color amarillo corresponden a los combobox, las seis siguientes son cajas de texto), al lado de cada entrada está el casillero para ingresar la correspondiente variable, en la tercera columna aparece en primer lugar una caja donde se ingresa el nombre de la plantilla (que tiene que coincidir con el nombre de nuestra plantilla en Word), abajo hay dos casilleros para colocar nombres de variables adicionales y cuatro checkbox para indicar si el documento debe incluir alguno de los siguientes datos fijos: tribunal, ciudad, juez y secretario.
En el extremo derecho hay una sección para ingresar hasta 3 valores para cada combo box y finalmente en la parte inferior están los botones para editar (buscar una plantilla ya existente), corregir (grabar los datos modificados) y agregar (agregar una platilla nueva).
Supongamos que queremos definir una nueva plantilla que se llamará
ENTREGA VEHICULO.DOC, primero que nada escribimos el documento de word colocando
los campos de formulario (ver, barras de herramientas, formularios) con sus
respectivos nombres (propiedades, marcador) donde corresponda como muestra la
figura
En éste caso definimos las variables ROL, NOMBRE, MARCA, PATENTE, PARTE y FECHA, para los datos fijos usamos los nombres reservados ftribunal, fciudad, fjuez y fsecretario y al campo de la fecha simplemente lo dejamos con el nombre por defecto y le ajustamos el tipo a 'fecha actual'. Grabamos este documento con el nombre ENTREGA VEHICULO.DOC
Luego abrimos nuestra plantilla maestra (CLIENTE.DOC) e ingresamos a configurar la entrada de datos, usando los mismos nombres que en el documento anterior como muestra la figura
En este caso no hemos usado los combobox (aunque si hubiesemos quedado cortos de cajas igual podríamos usarlos) colocamos el nombre del documento tipo y tikeamos todas las opciones de los datos fijos, pues todas ellas se ocupan. Así, en un par de minutos hemos creado una nueva plantilla que podemos ver agregada en la lista la próxima vez que abramos el programa como muestra la figura siguiente
Y aquí tenemos nuestra flamante plantilla en acción, miren que linda quedó
¿Que pasa si después de un tiempo necesitamos agregar o quitar algún campo de la plantilla?. Muy fácil, nos vamos nuevamente a configurar y clikeamos el boton Editar con lo que nos aparece la lista de todas las plantillas almacenadas
Luego escogemos la plantilla que deseamos modificar con doble click sobre la lista y sus datos aparecerán listos para ser modificados. Por ejemplo aquí le agregué un campo llamado 'observaciones`a la plantilla de entrega de vehiculo
Luego modificamos el documento-tipo para agregarle el campo y listo. Como pueden ver el proceso de creación y mantención de plantillas es bastante fácil con este sistema
Finalmente tenemos la mantención de los datos fijos que nos sirven para cambiar el nombre del tribunal, de la ciudad, del juez y el secretario, al clikear el botón Datos Fijos se solicita un password de ingreso
Luego de ingresado el password se pueden cambiar estos datos. Además hay un casillero para grabar el nombre del funcionario y su password como se muestra en la figura
Esa es la descripción funcional del programa. La operación interna se detallará en una sección aparte donde se muestra la potencia y funcionalidad que se puede alcanzar con solo tener un procesador de textos y nada más. El Visual Basic Para Aplicaciones es una caja de sorpresas