LAS DIFERENCIAS ENTRE VISUAL BASIC 5.0 Y VISUAL BASIC PARA APLICACIONES

  • Aunque VBA es un conjunto de VB5.0, funcionalmente, ambos lenguajes son iguales. Es decir que cualquier cosa que pueda programarse en VB 5.0 también se puede programar en VBA
  • Lo inverso no es siempre cierto, es decir que hay muchas cosas que pueden programarse en VBA pero resulta muy dificil hacerlas en VB 5.0. En principio podemos vincular programas escritos en VB 5.0 a aplicaciones como Word, Excel, Acces, etc. usando las llamadas OLE. Sin embargo no recomiendo para nada usar esos métodos ya que resultan engorrosos, muy lentos y MUY inestables.
  • Cuando hacemos un programa en VB 5.0 podemos compilarlo y crear un archivo .exe que funcionará de manera independiente. En VBA en cambio, el código es siempre interpretado al momento de ejecutarse y queda incluído dentro del documento creado por la aplicación. No se puede ejecutar un código de VBA desde fuera de la aplicación en que ha sido escrito.
  • Para programar el Acces con VBA, Microsoft ofrece adicionalmente el Office 97 Developer Edition (ODE) que permite distribuir aplicaciones basadas en Acces a sistemas que no lo tengan instalado.
  • En suma: VBA es un lenguaje especialmente apto para automatizar aplicaciones de Office y otros programas (por ejemplo Visio) que lo soportan. Para los programas que no tienen nada que ver con Office Visual Basic 5.0 es la mejor opción.

¿DONDE SE GUARDA EL CÓDIGO FUENTE EN VBA?

Uno de los aspectos más desconcertantes para el que comienza a programar en VBA es que, a diferencia del Visual Basic común, donde todo el código fuente queda guardado en archivos .bas .mak .vbp .frm, etc. bien identificados, en VBA no vemos nunca realmente donde se guarda el código.Lo que pasa es que el código fuente queda incrustado dentro del documento, con todos sus compònentes: forms, módulos, iconos, imagenes, etc. Este también puede quedar dentro de la plantilla Normal.dot, si al comienzo de nuestro proyecto tenemos iluminada esa rama en el arbol de ubicación de proyectos (ventana arriba izquierda).

Una complicación de este esquema es que bien podríamos tener dos copias abiertas del mismo documento cuando lo estamos programando, una menos actualizada que la otra y por lo tanto podríamos perder nuestro trabajo si guardamos la menos actualizada al final.

Otra complicación frecuente es que cuando agregamos código a un componente (haciendo click dos veces sobre él) la primera opción no siempre es la deseada, por ejemplo aparece por defecto la subrutina "change" y nosotros queremos programar "exit". Así van quedando subs en blanco que alargan innecesariamente nuestro código. Cuando las borramos, si no tenemos cuidado de conservar un espacio en blanco arriba de cada subrutina es probable que al momento menos pensado ocurra un error del tipo "este programa ha efectuado una operación no válida y se apagará". Estos errores aparecen con cierta frecuencia cuando se está codificando, por causas que nadie parece tener muy claras (recuerden que es un producto de Microsoft). Mi recomendación es graben lo más seguido posible o pasarán un mal rato.

LAS INSTRUCCIONES MAS USADAS EN VBA

Recuerdo que para comenzar a programar en Basic bastaba con saber usar Input, Print y otras pocas instrucciones que formaban el grueso de cualquier programa. En VBA ocurre lo mismo. Por ejemplo para programar en Word las instrucciones más usadas son:

Selection.Typeparagraph (Pasa a la linea siguiente, vuelta de carro)

Selection.Typetext Text:="texto a escribir" (escribe un texto de cualquier largo y lo justifica automáticamente)

Selection.Font.Name="nombre del font"

Selection.Font.Size="tamaño del font"

Selection.ParagraphFormat.LineSpacingRule = wdLineSpaceSingle (pone espacio simple)

Selection.ParagraphFormat.Alignment = wdAlignParagraphLeft (alinear izquierda)

USO DEL WITH...ENDWITH

Esta es una característica de VB5.0 que tiene mucha aplicación en VBA, sirve para evitar escribir tanto cuando se usan instrucciones del tipo modelo de objetos. Un ejemplo práctico muestra para que sirve:

Por ejemplo el siguiente código:

Selection.Font.Name = "Arial"
Selection.Font.Size = 10
Selection.ParagraphFormat.LineSpacingRule = wdLineSpaceSingle
Selection.ParagraphFormat.Alignment = wdAlignParagraphLeft
Selection.TypeText Text:=" GENDARMERIA DE CHILE " & vbTab & vbTab & vbTab & "ORD.: Nº " Selection.TypeParagraph

Podría escribirse así:

With Selection

.Font.Name = "Arial"
.Font.Size = 10
.ParagraphFormat.LineSpacingRule = wdLineSpaceSingle
.ParagraphFormat.Alignment = wdAlignParagraphLeft
.TypeText Text:=" GENDARMERIA DE CHILE " & vbTab & vbTab & vbTab & "ORD.: Nº " & TextBox1.Text
.TypeParagraph

End With

Mucho mejor ¿no?. Bueno, En la próxima entrega veremos una aplicación práctica, que escribe un documento leyendo datos desde un archivo (generado por otro programa) y guardando un registro histórico de los documentos que se han emitido.

 

Autor: Tomás Bradanovic
http://members.spree.com/sip/tombrad

Entrega 1 - Entrega 2 - Entrega 3 - Entrega 4 - Entrega 5 - Entrega 6 - Entrega 7 - Entrega 8 - Entrega 9
Descargar