Mostrando entradas con la etiqueta Excel y VBA. Mostrar todas las entradas
Mostrando entradas con la etiqueta Excel y VBA. Mostrar todas las entradas

lunes, 26 de octubre de 2009

Excel and or versus VBA

Visual .Basic es el lenguaje. de. programación. integrado .en las .aplicaciones .de Microsoft Office, y por lo tanto en Excel. Si bien, es perfectamente posible realizar hojas de cálculo perfectas sin escribir una sola línea de código, Visual Basic incrementa las posibilidades de Excel en los cálculos, la automatización de tareas e incluso la mejora en la apariencia de las aplicaciones, de modo que tengan un aspecto más profesional.

En la imagen siguiente vemos el editor de Visual Basic, este editor está disponible directamente desde Excel, y tenemos la opción de trabajar con él sin tener que adquirir nada adicional. Por tanto es una herramienta disponible en el propio Excel, así como en cualquier programa de la serie Office.


Utilizar Visual Basic tiene muchísimas ventajas que justifican el esfuerzo que implica su aprendizaje. Sin embargo, corremos el riesgo de abusar de él. Me he encontrado muchas ocasiones en que se utiliza para hacer cosas que se pueden hacer de manera más eficiente con las herramientas que el propio Excel proporciona.

Generalmente los programadores de Visual Basic, utilizan el código para crear funciones de todo tipo. Sería conveniente asegurarse de que lo que buscamos no está ya disponible en Excel. En la mayoría de los casos, cualquier función creada en Visual Basic es más lenta que las funciones equivalentes integradas en Excel, y según mi experiencia, cualquier función que creemos en Visual Basic por no estar integrada en Excel, se puede construir disgregándola en varias de las funciones disponibles en Excel.

Un ejemplo de lo que me refiero lo tenemos en la entrada Simulador de Lotería primitiva, éste simple procedimiento en Excel, lo construí al ver cómo se había creado utilizando Visual Basic en un blog de manera posiblemente exquisita desde el punto de vista de la programación, pero considerablemente más laboriosa que utilizando las fórmulas disponibles en Excel.

No obstante, Visual Basic y Excel están íntimamente relacionados. Aunque no estemos escribiendo código, cada vez que grabamos una macro Visual Basic está escribiendo el código por dentro de la aplicación. En el video siguiente podemos ver cómo el Editor de Visual Basic está activo y registrando en código todas las acciones que realizamos. En concreto, esto es lo que pasaba por dentro de Excel de forma automática, cuando grabábamos la entrada La Primera Macro, ejemplo de la Grabación de Macros en Excel. Para obtenerlo, simplemente abrimos el editor de VBA y lo colocamos al lado de la ventana de excel, grabándo lo que ocurría en él mientras construíamos la macro de la manera que indicamos en la entrada.


En general, cuanto más aprendo de Visual Basic más me gusta y más lo utilizo. Pero en mi opinión, sacando el máximo partido de Excel, se puede satisfacer cualquier necesidad en cuanto a informes, cálculos y aplicaciones.

sábado, 22 de agosto de 2009

La Primera Macro

Una de las utilidades que sin lugar a dudas marcan la diferencia a la hora de aprovechar al máximo Excel es la utilización de macros. Las macros sirven para automatizar tareas, no sólo podemos automatizar tareas repetitivas como puede ser el formateado de hojas (por ejemplo tablas de datos provenientes de un ERP), sino que si somos capaces de sistematizar los cálculos podremos crear macros para la realización de cualquier tipo de informe o proceso. De hecho podríamos construir un ERP con un Excel y un conjunto de macros.

En la realización de las macros interviene el lenguaje de programación Visual Basic, pero no es necesario conocer dicho código para poder crear y ejecutar macros si utilizamos el asistente para la grabación de macros. La diferencia como explicaré en la siguiente entrada Excel and or versus VBA está en el hecho de que la utilización de Visual Basic nos proporcionará una ejecución más rápida al poder prescindir de una gran cantidad de código que no interviene para nada en los cálculos salvo por su consumo de memoria. También hay que decir que hay operaciones que no podremos hacer con la grabadora.

Para ilustrar la realización de macros he construido un ejemplo de escasa (o nula) aplicación práctica, pero que considero útil por su simplicidad a efectos didácticos. El ejemplo está construido en Excel 2007, pero es exactamente igual en Excel 2003.

Consiste en la creación de una macro que hace:

En la hoja 1, pone los números 1, 2, 3, 4, 5 y 6 en las celdas A1, A2, A3, A4, A5 y A6 poniéndoles un formato con fondo en amarillo.

En la hoja 2, pone los números 7, 8, 9, 10, 11, 12 en las celdas A1, A2, A3, A4, A5 y A6 poniéndoles un formato con fondo verde.

En la hoja 3, pone los números 13, 14, 15, 16, 17, 18, 19 y 20 en las celdas A1, A2, A3, A4, A5, A6, A7 y A8 poniéndoles un formato con fondo azul.

Finalmente la macro vuelve a la hoja1 y selecciona la celda A1

Como comentaba puede no parecer de utilidad pero imaginemos el caso de un informe sacado de nuestro sistema contable con un formato predeterminado que necesitamos cambiar para poder trabajar con él. Imaginemos que hay distintas unidades de negocio para las que tenemos que formatear… podríamos copiar y pegar los informes tal y como salen del ERP en las hojas del libro y ejecutar la macro para tenerlo listo para trabajar de forma inmediata.

Lo primero que tenemos que hacer para construir una macro es disponer de la pestaña programador en nuestro Excel. Ya hemos hablado de cómo incorporar dicha pestaña en la entrada Tips & Tricks IV.

Una vez en esa pestaña iremos al icono Grabar macro dentro del área de Código.

Nos aparece una ventana en la que nombraremos la macro y podemos definir su ámbito de aplicación.

Una vez aceptada la ventana anterior comienza la grabación de la macro. Todas las acciones que ejecutemos a partir de ahora quedarán registradas y se repetirán tal cual las hacemos cada vez que ejecutemos la macro.

Por último, para detener la grabación de la macro solamente debemos pulsar el botón con forma de cuadrado (el mismo símbolo que se utiliza en los reproductores de música) que aparece tanto en la parte superior izquierda e inferior izquierda.


Para ejecutar la macro tenemos que acudir nuevamente a la pestaña Programador y pulsar sobre el icono Macros. Nos aparecerá nuevamente una ventana en la que tendremos a nuestra disposición la lista de todas las macros disponibles.

Una vez seleccionada la macro, podremos hacer distintas acciones sobre ella, ejecutar, modificar, eliminar,… Pulsando Ejecutar se repetirá automáticamente el proceso grabado anteriormente.