Mi inters en el VBA parti de la necesidad de automatizar algunos trabajos
tpicos de oficina, creando plantillas para personas que no tenan el tiempo, ni las ganas de aprender nada aparte del manejo bsico del procesador de textos. Una de las aplicaciones ms obvias es la automatizacin de documentos-tipo, con partes fijas y otras que pueden variar. Como vimos en la leccin anterior, combinando los campos de formulario con los macros en VBA se puede lograr un alto grado de automatizacin de estas tareas con un mnimo trabajo de parte del usuario final. Pero subsiste un problema prctico; que muchas veces el trabajo requerido para programar estas macros y mantenerlas (modificarlas) es tan grande que se hace muy difcil 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 sera 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: Descripcin 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 histrico de los documentos emitidos lo que permite que el funcionario lleve de manera automtica un inventario de las causas de acuerdo a los formularios que estas generan. Cdigo Fuente Haciendo click Aqu podr acceder al cdigo fuente completo, junto con el diseo 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 botn de plantilla (con icono de balanza) en la barra de tareas Un Generador de Formularios con Word y VBA http://www.bradanovic.cl/pcasual/cvba10.html 1 de 13 13/09/2014 22:24
Al hacer click en el botn de plantilla aparece una lista con las plantillas disponibles entre las cuales se puede escoger (en este ejemplo estn disponibles solo dos plantillas)
Un Generador de Formularios con Word y VBA http://www.bradanovic.cl/pcasual/cvba10.html 2 de 13 13/09/2014 22:24
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. Tambin se carga una ventana para el llenado de los campos de formulario con las correspondientes cajas de texto y combobox, que permitirn ingresar los datos al formulario, tal como se muestra en la siguiente figura
Un Generador de Formularios con Word y VBA http://www.bradanovic.cl/pcasual/cvba10.html 3 de 13 13/09/2014 22:24 En este caso solo se pide el ingreso del ROL (nmero del proceso) y el nombre del muerto. El nombre del mdico se escoge de uno de los que aparecen en el combobox. Ntese 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 (tambin editable) como "datos fijos". Al ingresar estos datos la plantilla es llenada automticamente como se muestra a continuacin
Un Generador de Formularios con Word y VBA http://www.bradanovic.cl/pcasual/cvba10.html 4 de 13 13/09/2014 22:24
Diseo de nuevas plantilla y edicin de las ya existentes La caracterstica ms importante del sistema es que permite automatizar el diseo de nuevas plantillas as como la modificacin 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 botn 'configurar' que aparece tanto en la pantalla principal como en la de ingreso de datos, all se cargar la pantalla de configuracin
Un Generador de Formularios con Word y VBA http://www.bradanovic.cl/pcasual/cvba10.html 5 de 13 13/09/2014 22:24
Esta pantalla nos muestra las posibilidades de diseo 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 seccin para ingresar hasta 3 valores para cada combo box y finalmente en la parte inferior estn 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
Un Generador de Formularios con Word y VBA http://www.bradanovic.cl/pcasual/cvba10.html 6 de 13 13/09/2014 22:24
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 Un Generador de Formularios con Word y VBA http://www.bradanovic.cl/pcasual/cvba10.html 7 de 13 13/09/2014 22:24
En este caso no hemos usado los combobox (aunque si hubiesemos quedado cortos de cajas igual podramos 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 prxima vez que abramos el programa como muestra la figura siguiente
Un Generador de Formularios con Word y VBA http://www.bradanovic.cl/pcasual/cvba10.html 8 de 13 13/09/2014 22:24
Y aqu tenemos nuestra flamante plantilla en accin, miren que linda qued
Un Generador de Formularios con Word y VBA http://www.bradanovic.cl/pcasual/cvba10.html 9 de 13 13/09/2014 22:24
Que pasa si despus de un tiempo necesitamos agregar o quitar algn campo de la plantilla?. Muy fcil, 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 aparecern listos para ser modificados. Por ejemplo aqu le agregu un campo llamado 'observaciones`a la plantilla de entrega de vehiculo
Un Generador de Formularios con Word y VBA http://www.bradanovic.cl/pcasual/cvba10.html 10 de 13 13/09/2014 22:24
Luego modificamos el documento-tipo para agregarle el campo y listo. Como pueden ver el proceso de creacin y mantencin de plantillas es bastante fcil con este sistema Finalmente tenemos la mantencin de los datos fijos que nos sirven para cambiar el nombre del tribunal, de la ciudad, del juez y el secretario, al clikear el botn Datos Fijos se solicita un password de ingreso Un Generador de Formularios con Word y VBA http://www.bradanovic.cl/pcasual/cvba10.html 11 de 13 13/09/2014 22:24
Luego de ingresado el password se pueden cambiar estos datos. Adems hay un casillero para grabar el nombre del funcionario y su password como se muestra en la figura
Un Generador de Formularios con Word y VBA http://www.bradanovic.cl/pcasual/cvba10.html 12 de 13 13/09/2014 22:24
Esa es la descripcin funcional del programa. La operacin interna se detallar en una seccin aparte donde se muestra la potencia y funcionalidad que se puede alcanzar con solo tener un procesador de textos y nada ms. El Visual Basic Para Aplicaciones es una caja de sorpresas tombrad@webhost.cl http://fly.to/arica
Un Generador de Formularios con Word y VBA http://www.bradanovic.cl/pcasual/cvba10.html 13 de 13 13/09/2014 22:24