¿Que es VBA Excel?
Visual Basic Para Aplicaciones (VBA), Es un lenguaje completo de programación que viene integrado en microsoft office, asi podemos incrementar y potenciar las características, funciones y aplicaciones que trae excel de manera predeterminada.
Con VBA, podemos programar tareas que normalmente son repetitivas, de esa manera nuestro trabajo se vuelve mas eficiente, incluso podemos programar funciones que no existen en excel ( Funciones Personalizadas ), así como excel trae la función SI(Prueba lógica Valor si Verdadero, Valor si Falso), nosotros podemos hacer algo como: MIFUNCION(Argumento1, Argumento2).
El uso mas común que suele darse a vba excel, es el de automatizar tareas que son repetitivas, las cuales por lo regular son tediosas y aburridas, esto vuelve aun mas importante el tener la posibilidad de programar esas tareas para poder realizaras con solo un clic. ejemplo, varias veces al día tiene que copiar un rango especifico de una hoja, pegarlo en un rango determinado de la hoja activa y aplicarle formato, si lo hace 1 o dos veces al dia no hay problema, pero si debe hacerlo 10, 15 o 20 veces cada día… estoy seguro que no te disgustaría poder hacerlo simplemente presionando un botón, entonces sigue leyendo…
Esto no termina aqui, no solo podemos programar tareas repetitivas, VBA excel es tan potente que incluso podemos programar toda una aplicación, ( control de inventarios, cobranza, libro de gastos… incluso todo un sistema de registros contables ).
¿Para que usar VBA Excel?
Aunque VBA sea tan oportuno en muchos casos, no siempre es necesario usarlo, como antes dijimos, microsoft excel trae funciones muy buenas y en la mayoría de los casos con el uso de funciones y formulas basta, así que antes de pensar en programar todo en VBA, es importante buscar la manera de hacerlo con las funciones predeterminadas, para esto es bueno usar la ayuda del sistema o un poco de búsqueda en la red también es buena opción.
Ahora que si de plano no es suficiente con las funciones nativas de excel, tendremos que echar mano de VBA. Microsoft excel es una de las aplicaciones de ofimática mas usadas en todo el mundo y se aplica prácticamente en cualquier ámbito laboral y profesional, eso significa que VBA puede ayudar a mejorar el desempeño del trabajo en cualquier ámbito en que se deba desarrollar, así que aplica para contadores, administradores, secretarias, ingenieros, recursos humanos, finanzas, dueños de negocios, etc, etc.
Lo básico para programar en VBA.
En realidad, si se desea automatizar alguna tarea o diseñar una función personalizada, es necesario escribir el código para que esto se de, esto podría parecer muy lejano y poco probable para muchos usuarios, pero en realidad la programación se basa en primer lugar en la lógica, aunque en muchos casos lo que creemos que es lógico tal vez no lo sea, así que para esto debemos ser abiertos y dar rienda suelta a nuestra inventiva.
Objetos propiedades y métodos.
En VBA excel es muy importante tener bien claros los conceptos y criterios referentes a la programación orientada a objetos (OOP), en este caso vamos a ir a lo básico ( Objetos, Propiedades y Métodos )
Objeto.
En lo cotidiano de la vida, cuando hablamos de objeto, nos estamos refiriendo a algo que puede ser cualquier cosa y es tangible, ejemplo: una casa, una mesa, una motocicleta, en programación orientada a objetos ( OOP), que es el caso en VBA excel, se le llama “clase” a la generalización de un objeto, en ese sentido, la clase motocicleta representa a todas las motocicletas del mundo, y el objeto motocicleta representa específicamente a una motocicleta.
Propiedades.
Todo objeto tiene ciertas propiedades o características como la forma, tamaño, color, etc, etc… dichas propiedades son definidas en la clase y posteriormente de manera particular para cada objeto, en ese sentido, en la clase motocicleta se pueden definir las propiedades largo, ancho, color… despues cuando definimos propiamente un objeto como motocicleta, se definen de manera particular sus propiedades, Largo= 1.60 metros, Ancho= 60 centímetros, Color= verde.
Metodos.
Los métodos son las acciones que pueden realizar los objetos, ejemplo: la acción básica del objeto motocicleta es ir de un punto a otro ( moverse ). Todo proceso que implique una acción por parte de un objeto, deberá definirse en su clase para que luego pueda manifestarse en cualquiera de los objetos de esa clase.
De acuerdo a esto, en la clase “coche” deberán definirse en el método “mover”, todos los procesos requeridos para que la acción de mover se pueda realizar (proceso requerido para trasladarse de un punto a otro ).
Entonces, cualquier objeto de la clase motocicleta, solo tendría que invocar el método necesario para trasladarse de A a B.
Editor VBA.
El editor de visual basic es donde vamos a escribir el código necesario para automatizar algún proceso, diseñar una función personalizada o un programa completo. Hay varias formas de ir al editor de visual basic, una de ellas y las mas practica, es presionando las teclas ALT+ tecla de función F11.
En la imagen de abajo podemos ver como es el editor. Con letra color rojo, se indican las tres secciones básicas, Explorador de proyectos, ventana de propiedades y la sección donde se escribe el código.
Ejemplos prácticos del uso de VBA Excel.
Iniciaremos con un ejemplo muy sencillo, esta sera tu primera macro.
1.- Abrir excel.
2.- Presiona ALT+F11 para abrir el editor de visual basic.
3.- Da clic derecho donde dice VBAProject(nombre del libro)/ Insertar / modulo.
En el explorador de proyectos veras que se agrego la carpeta “modulos” y modulo1 A la derecha veras que aparece la sección para escribir código.
4.- En esa sección escribir el siguiente código.
Sub Miprimeramacro()
MsgBox “Tu primera Macro se ha ejecutado correctamente…”
End Sub
¿Como se ejecuta esa macro?
1.- Presionar ALT+F11 para regresar a excel.
2.- presionar ALT+F8 para ver la lista de macros.
3.- Deberá aparecer “Miprimeramacro”./ seleccione esa macro.
4.- Clic en ejecutar.
Si todo se ha echo de manera correcta, debera mostrase el mensaje “Tu primera Macro se ha ejecutado correctamente…”.
¿Como ejecutar una macro desde un botón?
La manera mas practica de ejecutar una macro es dando clic sobre un botón… para poder poner un botón en nuestra hoja, debemos activar primero la ficha programador.
1.- Estando en excel, presionamos en el botón office ( en excel 2007 )… Menú archivo ( en excel 2010-2013 ).
2.- Clic en opciones de excel.
3.- En excel 2007… clic en “Mas Frecuentes” / marcar la opción: “Mostrar ficha programador”. En excel 2010-2013 clic en personalizar cinta de opciones / en el cuadro de la derecha, marcar la opción ” Programador”.
4.- Clic en aceptar.
De este modo veremos que en el menú superior de excel se agrego “Programador”.
Para agregar un botón en la hoja.
1.- Clic en la ficha “Programador”
2.- En las opciones de la ficha programador, de clic en “Insertar”.
3.- Clic en el primer botón del cuadro que se muestra.
4.- De clic dentro de la hoja y sin soltar arrastre hacia su derecha y hacia abajo para dibujar el botón .. detenerse hasta que tenga el tamaño deseado.
5.- Al soltar, se abre el cuadro para asignar macro… seleccione su macro y de clic en aceptar.
6.- Presione la tecla ESC. 7.- De clic en el botón para ejecutar la macro.
¿Como puedo crear macros para automatizar tareas.?
Si apenas inicias en el mundo de las macros programadas en VBA excel, obviamente aun no seras capaz de escribir el código por ti mismo, para esto, excel tiene una opción para grabar macros mientras tu haces el procedimiento que normalmente haces para alguna tarea.
Ejemplo: una tarea repetitiva consiste en copiar un rango determinado de una hoja y pegarlo en otra y darle formato.
¿Como hacer la grabación de este proceso y después poder ejecutarlo desde un botón…?
1.- En un libro nuevo, hacer una tabla de datos con nombre y edad, columnas A y B, en A1 poner Nombre, en B1 poner Edad… en las filas de abajo poner los datos hasta la fila 11.
2.- Seleccionar cualquiera de las otras hojas del libro.
3.- Clic en la ficha Programador.
4.- Clic en grabar macro.
5.- Poner un nombre a la macro… también puede indicar un método abreviado para ejecutar esa macro.
6.- Clic en aceptar para iniciar la grabación.
7.- Seleccionar la hoja donde puso los datos.
8.- Seleccionar el rango A1:B11
9.- Presionar CONTROL+C para copiar.
10.- Seleccionar la hoja donde desea pegar los datos.
11.- selecciona la celda donde desea pegar.
12.- Presionar CONTROL+V para pegar.
13.- Seleccione las celdas que contienen los rótulos de esa tabla… Nombre…..Edad.
14.- Presione CONTROL+N para poner en negrita el texto de esas celdas.
15.- Clic en la ficha programador.
16.- Clic en detener grabación.
17.- Presione ALT+F11 para ir al editor VBA.
18.- En el explorador de proyectos, a lado izquierdo de la ventana, vera la estructura del proyecto en cuestión, de clic en el signo + de la carpeta módulos, doble clic sobre Modulo1
De ese modo podrá ver y tratar de comprender el código que se genero.
Después de esto, podrá hacer el procedimiento antes señalado para poner un botón en la hoja y asignarle la macro recién creada, así podrá hacer el procedimiento de copiar los datos a la otra hoja, ponerle formato, etc, etc… solo dando clic en el botón.
El procedimiento anterior, es la forma mas fácil de generar macros y también una buena opción para iniciarse en la programación de VBA, estudiando el código generado y por supuesto buscando mas información de referencia.
Como hemos visto, realmente es muy sencillo iniciarse en este mundo de la programación de macros en excel, después seguramente, al ir teniendo pequeños logros, podrá ir avanzando para llegar a realizar incluso funciones personalizadas que mejoren su desempeño en el trabajo.
Espero que esta información les sea de ayuda.
JOSE LUIS RAMIREZ dice
LES AGRADEZCO MUCHO SU AYUDA, ESPERO QUE TENGAN MUCHO EXITO GRACIAS…
Anonymous dice
MUCHISIMAS GRACIAS POR TODOS SUS ESFUERZOS SALUDOS CORDIALES
Tutorías dice
Muy buen método e importancia para quiens somos gomosos de hacer las cosas de modo diferente!
Gracias.
Anonymous dice
Muy buena la clase, espero que sigan progresando con las mismas, son muy útiles.
GRACIAS POR LOS QUE SABEN MAS.
Anonymous dice
Hola Nolberto
Excelente información´para los que deseamos saber más sobre excel y VBA