Introducción a VBA (Visual Basic for Applications)

Microsoft VBA (Visual Basic for Applications) es el lenguaje de macros de Microsoft Visual Basic que se utiliza para programar aplicaciones Windows y que se incluye en varias aplicaciones Microsoft. VBA permite a usuarios y programadores ampliar la funcionalidad de programas de Microsoft Office. Visual Basic para Aplicaciones es un subconjunto casi completo de Visual Basic 5.0 y 6.0.

Microsoft VBA viene integrado en aplicaciones de Microsoft Office, como Word, Excel y Access, Powerpoint. Prácticamente cualquier cosa que se pueda programar en Visual Basic 5.0 o 6.0 se puede hacer también dentro de un documento de Office, con la sola limitación que el producto final no se puede compilar separadamente del documento, hoja o base de datos en que fue creado; es decir, se convierte en una macro (o más bien súper macro).

Esta macro puede instalarse o distribuirse con solo copiar el documento, presentación o base de datos. (Definición tomada de Wikipedia)

¿Qué puede hacerse con VBA?

Prácticamente todo… Y más rápido, de hecho, a medida que las utilices iras encontrando muchas aplicaciones para VBA, pero por ahora te daré algunas ideas:

  1. Insertar textos: En caso de que existan textos que ingreses repetidamente como el nombre de la empresa, números telefónicos, direcciones, etc.
  2. Automatizar tareas que hagas frecuentemente.
  3. Desarrollar funciones propias (funciones como SUM, AVG, etc, claro pero que realicen otras tareas)
  4. Crear aplicaciones con formularios, botones y todo eso.
  5. Realizar cálculos complejos.
  6. Validar datos.

Seguridad en las macros.

Recuerdan que dijimos que VBA podría realizar prácticamente cualquier cosa que Visual Basic 5.0 ó 6.0, bueno es tan poderoso que también podría causar serios daños a tu computadora, como borrar archivos, robar información, incluso arruinar por completo tu sistema operativo. Es por eso por lo que la seguridad de macros en Excel juega un papel importante para prevenir estos problemas.

Una instalación típica de Excel tiene todas las macros des habilitadas con notificación, esto significa que no se ejecutara ninguna macro que no esté firmada con un certificado digital válido, a menos que des tu autorización, esta autorización es recordada por Excel y no volverá a solicitarla para el mismo documento (Esto aplica solo para la versión 2010, la 2007 volverá a solicitar la confirmación cada vez que se abra.)

Es recomendable que dejes esta opción de seguridad como esta y des tu autorización solo a documentos que provienen de una fuente confiable para ti.

Tu primer programa en VBA (¡Hola mundo!)

En el libro “El Lenguaje de Programación C”, Kernighan y Ritchie introdujeron al lenguaje C utilizando un sencillo programa que mostraba un saludo por la pantalla que decía “¡Hola mundo!”. Desde entonces se hizo tradición empezar con cualquier lenguaje de programación con el ejemplo del “Hola mundo” y nosotros vamos a honrar esta tradición.

Primero debes activar la cinta «Programador», si no sabes cómo hacerlo puedes leer este artículo, luego selecciona la cinta programador y das clic sobre el botón “Visual Basic”.

Al hacer esto se abrirá un editor de código, como el que se muestra a continuación:

Ingresar codigo en vba

Ahora damos doble clic sobre “ThisWorkbook” y luego en la ventana derecha (sección de código) escribimos nuestro programa:

Sub Mensaje()
    MsgBox ("¡Hola mundo!")
End Sub

¡Listo!, ahora hemos creado nuestro primer programa en VBA, para probarlo podemos presionar la tecla F5 o presionar el botón “Ejecutar” (Triangulo verde en la barra de herramientas), también podemos ejecutarlo desde el documento de Excel con el botón “Macros”.

Explicación del programa.

La sección del código “Sub …. End sub” indica el inicio y fin de una sub rutina, en este caso nuestro programa, la palabra “Mensaje” es el nombre de nuestro programa, este nombre debe cumplir con estos requisitos:

  1. Contener solo letras, números y guion bajo ( _ ), los espacios no son permitidos.
  2. Comenzar con una letra
  3. Finalizar con paréntesis abiertos y cerrados.

El comando “MsgBox”, muestra un mensaje en pantalla, el texto a mostrar debe estar encerrado entre paréntesis y comillas dobles.

9 comentarios en «Introducción a VBA (Visual Basic for Applications)»

  1. hola, espero me puedas ayudar. quiero crear un funcion en donde capture una letra y me de un numero por ejemplo capturar C y en resultado me de 19, G y el resultado sea 4. gracias por tus ateniones. saludos.

    Responder
    • Hola, si ya sabes como capturar la letra y ya la tienes puedes usar un codigo como este:

      Dim LResult As Integer
      LResult = Asc (“W”)

      Donde la variable Lresult tendra el valor numerico ascii, que para este ejemplo seria 87, pero si quieres retornar numeros ya predefinidos, puedes usar una sentencia, como esta

      Dim LResult As Integer
      Select Case miLetra
      Case “C”
      LResult = 19
      Case “G”
      LResult = 4
      End Select

      Responder
    • Con Excel y VBA puedes crear aplicaciones muy avanzadas. Te doy algunos pros y contras de Excel y Access.

      Excel Pros:
      1. Ingresar datos es muy facil
      2. Puedes lograr muchas cosas sin programar (usando solo formulas)
      Contras:
      1. Es dificil validar y proteger los datos que se ingresan
      2. Tiene mal desempeño a la hora de procesar volumenes grandes de información (para eso necesitas bases de datos)

      Access Pros:
      1. Crear una aplicacion es mas facil que hacerlo en un lenguaje de programacion como .Net
      2. Puedes manejar volumenes grandes de información
      Contras:
      1. Ingresar informacion no es tan facil como se hace en Excel
      2. Crear el sistema puede ser mas dificil que hacerlo en Excel

      Si no tienes muchos conocimientos y deseas ahorrarte tiempo y hacer algo de alta calidad, es mejor que leas un libro sobre VBA. Si ya tienes conocimientos sobre VBA, puedes leer blogs y hacer consultas en foros.

      Responder
    • A veces al copiar texto de una pagina web las comillas dobles ” se cambian por unas comillas dobles inclinadas, después de pegar el texto en el editor de VBA de Excel, verifica las comillas dobles, y por si acaso borralas y vuelve a escribirlas. Creo que con eso se corrige.

      Responder
  2. buena tarde disculpe podrian ayudarme a como crear un diseño de mi hoja de excel y de que manera puedo mostrar datos de una tabla con un menu desplegable y tambien como poder introducir en una celda cualquier numero y este me muestre datos de una tabla que esten en el rango del numero que le introduje a la celda, espero puedan ayudarme. buena tarde.

    Responder

Deja un comentario