Para ver Visual Basic para Aplicaciones en 21 dias (haz click aqí)


Ultima Hora!!!

En la Web del Programador http://www.casarramona.com/mt/programador/index.htm Aparece publicado este mismo curso, además de mucha información útil sobre Visual Basic. La Web del Programador es un sitio extraordinariamente práctico y lleno de datos, especial para programadores que quieran expandir sus conocimientos de manera rápida. Lo recomiendo.

Si no sabes absolutamente nada de Visual Basic tal vez no sería mala idea que visites primero Básico y Visual, donde muestro los fundamentos de la programación Vb por medio de un programita de ejemplo

Si ya sabes de que se trata el VBA y quieres saltarte la introducción e ir directamente al curso, pulsa en la LECCION 1

 

INTRODUCCION

Que es el Visual Basic Para Aplicaciones


Visual Basic Para Aplicaciones (o Visual Basic Aplications Edition, su nombre oficial), es la integración del lenguaje Visual Basic en la mayoría de los documentos de Office, particularmente Word, Excel, Acces, Power Point y Project.

Es curioso pero existe poquísima información relevante sobre el VBA en línea. Tal vez sea mejor así porque este potente lenguaje es la herramienta más sencilla en la actualidad para programar virus, ya no en archivos .exe sino directamente en cualquier documento del Office. Este curso desarrollará los temas en base a ejemplos prácticos de programación explicados paso a paso.

La mayoría de los programadores nunca estuvieron muy dispuestos a gastar tiempo y esfuerzo aprendiendo los enredados lenguajes de macros que tradicionalmente se incluian en los software de aplicación. Esta situación ha cambiado desde que se integró el Visual Basic a la suite Office 97 en adelante como el lenguaje común de programación de macros.

Si eres programador de Visual Basic y te gustaría incluír programas dentro del Word, Excel o Access, entonces VBA es lo que estabas esperando. Con VBA puedes, por ejemplo incluir un macro dentro del Word de manera que apretando un botón se abra un formulario de ingreso de datos, con textbox, listbox, botones de comando, combobox, etc.

Pero lo más interesante es que no se trata solo de un lenguaje de macros limitado a la manera antigua, puedes programar cualquier cosa que te permita el Visual Basic 5, es decir que este formulario podría grabar los datos ingresados en un archivo (o en una base de datos si lo quieres hacer más facil), llenar con los datos un documento tipo plantilla, que se justificará y tendrá todas las opciones de formato que permite el Word, etc. En resumen, on VBA tu puedes programar cualquiera de los productos del Office 97 desde dentro, como si tuvieras un super-lenguaje de macros.

¿Como se hace?

Partamos con un ejemplo trivial, que lo puede programar cualquiera aún sin conocer el Visual Basic: un programa que agregue un botón al Word 97 de manera que al apretarlo aparezca un formulario de ingreso de datos, y que al ingresar los datos se rellene una plantilla, aquí vamos:

En primer lugar debes ingresar a Word 97 o superior (las versiones anteriores no sirven), y escoger "herramientas" "macros" "editor de Visual Basic". Si estás familiarizado con VB 5.0 verás que aparece el mismo entorno del VB 5 original. Tal vez te parezca raro el arbol de directorios de la ventana izquierda superior, que tiene secciones como "Normal" "project documento 1" "referencia a normal" y "this document", bueno en principio debes saber que si haces click en "normal" todo lo que programes quedará disponible para todos los documentos, y si haces en "this document" el programa será exclusivo de ese documento.

 

 

 

 

 

 

 

En nuestro caso elegiremos "this document" para no modificar la plantilla "normal" y hacemos click en "insertar" "módulo" al aprecer el módulo escribimos

sub prueba()
form1.show
end sub

Esto quiere decir que creamos una macro llamada "prueba" y que al partir carga la form1

luego hacemos click en "insertar" y "user form". Al aparecer la form1 le colocamos 3 textboxes con sus correspondientes labels (por ejemplo "nombre" "dirección y "teléfono"), luego agregas un botón de comando y le pones al caption "ejecutar"

Los componentes de la form1 se programan de la manera usual de VB, se hace doble click y se escoge el evento de la ventana superior, por ejemplo para cada uno de los textbox se coloca un código del tipo:

Private Sub TextBox1_Exit(ByVal Cancel As MSForms.ReturnBoolean)

TextBox1.Text = UCase(TextBox2.Text)

End Sub

En este caso, solo para efectos pedagógicos le agregamos una instrucción para que después de ingresar un dato y colocar enter la entrada se convierta a mayúsculas. Esto para hacer notar una diferencia entre VB 5.0 y las versiones anteriores, en las versiones anteriores para ingresar un dato on enter se usaba el evento "keypress" (if keyascii=13 then...) en la versión VB5 se usa el evento "exit"

Repetimos esta instrucción en cada una de las textbox (cuidando de colocar los indices correspondientes) , hasta ese punto no habría ninguna dificultad para el que esté medianamente familiarizado con VB en cualquiera de sus versiones pero cuando finalmente programamos el botón de comando que terminará el proceso, allí colocaremos el código específico de VBA que permitirá introducir los campos del formulario en una plantilla, formatearlos, etc.

Private Sub CommandButton1_Click()

With Selection
.Font.Size = Val(10)
.ParagraphFormat.LineSpacingRule = wdLineSpaceSingle
.TypeParagraph
.Font.Name = "arial black"
.ParagraphFormat.Alignment = wdAlignParagraphCenter
.TypeText Text:=vbTab & "Programa de Prueba"
.ParagraphFormat.Alignment = wdAlignParagraphLeft
.TypeParagraph
.TypeParagraph
.Font.Name = "Arial"
.TypeText Text:=vbTab & "NOMBRE " & vbTab & TextBox1.Text
.TypeParagraph
.TypeText Text:=vbTab & "DIRECCION" & vbTab & TextBox2.Text
.TypeParagraph
.TypeText Text:=vbTab & "TELEFONO " & vbTab & TextBox3.Text
.TypeParagraph
.TypeParagraph
.End With

End Sub

Con ésto el programa de ejemplo ya está listo, para hacerlo partir con un botón debes usar "herramientas" "personalizar" "comandos" "macros", escoges el macro y lo arrastras hacia la barra de herramientas (también puedes cambiar el aspecto del botón usando el botón derecho del mouse). Al grabar tu documento tendrá el macro incorporado, cuando lo copies a otro equipo aún conservará el macro con todas sus características.

Cuando vemos por primera vez "chorizos" del tipo ParagraphFormat.Alignment=wdAlignParagraphCenter, es natural asustarse y pensar que la programación es muy complicada, necesitando dominar las "Microsoft foundation classes" que son la causa de los enormes y engorrosos nombres de variable, pero no es así, no hace falta aprender nada pues hay una forma muy fácil de averiguar cual es el código para realizar determinada tarea en VBA, el truco es el siguiente; cuando quieras saber los comandos necesarios para (por ejemplo) hacer que el Word imprima una página y se cierre automáticamente, o para que abra un determinado documento, etc. basta con que uses "herramientas" "macros" "crear nuevo macro", grabas todas las acciones a las que deseas saber el código y finalizas, luego entras al editor de Visual Basic y ¡voilá! tendrás todo el códiugo que necesitas ya escrito, listo paracortar, pegar y modificar para tus necesidades.

Si eres programador de Visual Basic o estás interesado en aprender el VBA seguramente te interesará seguir con el curso, haz click en la

LECCION 1