un generador de formularios con word y vba.pdf
TRANSCRIPT
Un Generador de Formularios con Word y VBA
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
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 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)
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.
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
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 (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
Un Generador de Formularios con Word y VBA http://www.bradanovic.cl/pcasual/cvba10.html
4 de 13 13/09/2014 22:24
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
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 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
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 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
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 acción, 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 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
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 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
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. Además
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 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
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