martes, 30 de noviembre de 2021

Comentarios en VBA para Microsoft Excel

Los comentarios, en VBA, son cualquier texto que comienza por un apóstrofe y son ignorados por el programa por lo que pueden ser usados para dejar recordatorios o explicaciones en el código.

Son quizás la parte de la sintaxis que más varía entre distintos lenguajes de programación, en C, C++ y Java comienzan por //, en Python comienzan por #, y en los archivos BAT de proceso por lotes comienzan por la palabra REM.



Un código normal es fácil de entender, pero cuando el algoritmo se complica, a veces es necesario dejar algún recordatorio de que se pretende hacer.

Para ello todos los lenguajes de programación incluyen la posibilidad de dejar comentarios dentro del propio código.

En VBA son cualquier texto que comience por un apóstrofe.

Y el entorno de programación los colores por defecto de color verde.


Otra utilidad habitual de los comentarios es la de desactivar líneas de código.

Si a una línea de código se le antepone un apóstrofe, esta es ignorada.

Esto suele ser de ayuda a la hora de buscar errores en el código.



lunes, 29 de noviembre de 2021

Tipos básicos de datos en VBA para Microsoft Excel

En VBA, como en casi todos los lenguajes de programación, existen tipos de datos básicos que permiten almacenar números enteros, números decimales, textos y datos tipo verdadero/falso.


Los tipos básicos son aquellos que nos permiten guardar datos sencillos como pueden ser números y textos.

En este ejemplo usaremos la siguiente función en la cual definimos cuatro variables de distintos tipos almacenamos un valor en cada una de ellas y finalmente las mostramos en pantalla.




Sub variables()

    Dim numeroEntero As Integer

    Dim numeroDecimal As Integer

    Dim texto As String

    Dim booleano As Boolean


    numeroEntero = 5

    numeroDecimal = 3.14

    texto = "Hola mundo"

    booleano = False

    

    MsgBox (numeroEntero)

    MsgBox (numeroDecimal)

    MsgBox (texto)

    MsgBox (booleano)

End Sub



Cómo se puede ver la primera variable almacenará un número entero.

La segunda variable almacenará un valor de tipo single lo que quiere decir un número decimal.

La tercera almacén around Street esto es una cadena de caracteres, o en otras palabras, un texto.

La tercera variable almacenar tipo boolean estos tipos de datos sirven para almacenar un valor verdadero o falso.


En este caso al ejecutar la macro veremos que se mostrara cuatro ventanas con mensajes y cada una de ellas esperara a que el usuario pulse el botón aceptar del anterior para poder mostrarse.

El primer valor que se muestra es el número entero cinco.


El segundo valor que se muestra es el decimal 3,14.

Cómo curiosidad vemos que el separador decimal se muestra como una coma en la ventana mientras que en el código lo hemos introducido como un punto.


Tercer valor se muestra como un texto.

Otra curiosidad es que en el código debemos definir los textos entre comillas pero al mostrarnos esas comillas no aparecen.

Y finalmente mostramos el resultado de la variable booleana.

También podemos comprobar que curiosamente en el código verdadero y falso se escribe en inglés mientras esté en pantalla se muestra en castellano.


Las variables son la base de cualquier lenguaje de programación y sirven para recordar el valor de un elemento en un momento determinado e incluso poder operar con ellos.

domingo, 28 de noviembre de 2021

Mensaje en statusbar con VBA en Microsoft Excel

Una ventaja de mostrar mensajes en la barra de estado es que el mensaje se mantiene hasta que se muestre un nuevo mensaje o que se resetee la barra de estado.

La principal ventaja es que no es necesaria la interacción del usuario para continuar la ejecución del programa tras mostrar el mensaje.


Hoy veremos cómo interactuar con la barra de estatus mediante código VBA.

Mediante la instrucción Application.StatusBar podemos modificar el texto mostrado en la barra de estado.

Para ello debemos igualarla al texto que deseamos mostrar.

Para resetearla es suficiente con igualar esta instrucción al valor False.

Esta es la función usada para escribir el texto "hola"en la barra de estado.


Sub statusbarHola()

    Application.StatusBar = "hola"

End Sub


Una vez guardada podemos ejecutarla desde el menú macros 


Ejecutada la macro se muestra el texto tal como se muestra.


Para mostrar adiós solo es preciso modificar levemente el código.


Sub statusbarAdios()

    Application.StatusBar = "adios"

End Sub


El texto se modifica sin que el usuario tenga que interactuar con Microsoft Excel.


Para resetearla igualamos a False la barra de estado.


Sub statusbarHola()

    Application.StatusBar = False

End Sub


La barra de estado vuelve al estado que tiene originalmente al abrir Microsoft Excel.



sábado, 27 de noviembre de 2021

Ventana de mensaje en pantalla con VBA

Comienzo un grupo de publicaciones en las que intentaré enseñar cómo programar a través de VBA.

Esto servirá para poder realizar vuestras propias macros y también como introducción a los distintos lenguajes de programación.

La macro VBA más sencilla y una de la más útiles es la que nos permite mostrar un mensaje en pantalla en Microsoft Excel.

Esta instrucción es muy utilizada para comunicarse con el usuario.


Sub mensaje()

    MsgBox ("hola mundo")

End Sub




Primero accedemos a la opción visual Basic desde la pestaña desarrollador de la cinta de opciones.

Vamos a crear una macro en el libro actual para ello primero deberemos tener un módulo para poder escribir nuestro código dentro.

Seleccionamos el documento actual y con el botón derecho pulsamos en la opción insertar y luego en módulo.

Esto genera una carpeta módulos y dentro un fichero denominado módulo 1.

Lo primero que debemos saber es que en visual Basic el código se divide en subrutinas.

La palabra clave una subrutina es SUB.

Las subrutinas también se suelen denominar funciones.

Una subrutina puede tener cualquier nombre que cumpla ciertas condiciones.

Estas condiciones implican que no empiece por ciertos caracteres y que no sea solo numérico.

Cualquier combinación de caracteres y números incluyendo el guión bajo y el guión medio podría ser un nombre válido siempre que no coincida con una palabra reservada.

En este caso vamos a nominar a nuestra subrutina mensaje.

Este será el nombre con el que identificaremos a la macro.


En este caso usaremos una instrucción que nos va a permitir mostrar una ventana emergente en pantalla un mensaje de texto.

La instruccion es MSGBOX.

Está instrucción admite múltiples parámetros pero solo uno es obligatorio.

El parámetro obligatorio es una cadena de texto en la que indicamos el mensaje que queremos mostrar.

En este caso mostraremos el típico "hola mundo".

Una vez qué hallamos acabado de escribir nuestro código, podremos cerrar la ventana de edición de código mediante la opción "Cerrar y volver a Microsoft Excel" del menú Archivo.

Para ejecutar está macro que hemos escrito tendremos que acceder a la opción macros la cinta de opciones.

Esta opción se puede encontrar dentro de la pestaña desarrollador.

Y en la ventana flotante encontraremos los nombres de las macros que tenemos disponibles.

Una vez seleccionada la macro que nos interesa solo tenemos que pulsar el botón "Ejecutar".


Este es el resultado de ejecutar nuestra macro con un mensaje hola mundo.



La parte más básica de cualquier lenguaje de programación es poder interactuar con el usuario.

viernes, 26 de noviembre de 2021

Acceso a macros desde la Barra de Herramientas de Acceso Rápido en Microsoft Excel

Además de los propios comandos pertenecientes a Microsoft Excel que se pueden incluir en la Barra de Herramientas de Acceso Rápido también se pueden incluir accesos a cualquier macro que podamos haber creado.



Para ello desplegaremos el menú contextual, y seleccionaremos la penúltima opción "Más comandos ...".

En la ventana que se nos abre, tenemos un cuadro desplegable.

Entre otras opciones, este cuadro nos permite añadir macros mediante botones en la barra de acceso rápido.


Seleccionamos la macro deseada.

Y con el botón Agregar la pasamos a la ventana de la derecha.

Aparece un nuevo botón.


Con sólo pulsar el botón se ejecutará la macro asociada.



Es un buen hábito, crear macros que permitan realizar de un solo click varias acciones consecutivas que debamos realizar con frecuencia.

Por ejemplo, yo tengo unos botones para distintos colores de fondo, y otra macro que aplica negrita a la primera fila y un filtro automático, con sólo pulsar un botón.

jueves, 25 de noviembre de 2021

Personalizar la Barra de Herramientas de Acceso Rápido

Mediante el menú desplegable de la Barra de Herramientas de Acceso Rápido es posible añadir o quitar iconos que nos permitirán realizar las tareas más habituales.



Para poder personalizar la Barra de Herramientas de Acceso Rápido hay que pulsar en el botón que aparece a su derecha.

Al pulsarlo, se despliega un menú con las opciones más habituales.


Solo es preciso marcar una de estas opciones, para que el icono correspondiente aparezca en la barra.

Por ejemplo marcando la opción "Orden ascendente" aparece el icono que se resalta. 



Pra quitarlo solo es preciso volver a pulsar en la opción  "Orden ascendente" 

miércoles, 24 de noviembre de 2021

Cambiar la ubicación de la Barra de Herramientas de Acceso Rápido en Microsoft Excel

Mediante el menú desplegable de la Barra de Herramientas de Acceso Rápido es posible modificar la ubicación de la Barra de Herramientas de Acceso Rápido en Microsoft Excel, eligiendo entre la parte superior o inferior de la cinta de opciones.


Usualmente la Barra de Herramientas de Acceso Rápido en Microsoft Excel se encuentra en la barra de título de la aplicación.
Es la misma barra en la que aparecen los botones de cerrar y minimizar.



A la derecha de la barra aparece un botón desplegable que permite acceder a la configuración de la misma.


La última opción del menú desplegable permite cambiar la ubicación de la barra.


Podemos mostrarla debajo de la cinta de opciones.


No es usual verla en esta posición, ya que reduce el tamaño de pantalla, ya que ocupa el alto de una fila de celdas.


Volviendo a la misma opción, podremos devolver la barra a su ubicación original.



domingo, 21 de noviembre de 2021

Macro VBA para ocultar líneas de impresión en Microsoft Excel

Al cambiar la vista de un libro de Microsoft Excel al modo "Diseño de página" y volver al modo normal, se muestran la ubicación de las líneas de impresión como una línea discontínua, que puede resultar molesta.

Con esta macro podréis ocultarlas rápidamente.


Si cambiamos de la vista normal a la vista de impresión, se nos muestra el documento de Excel de forma similar a un documento de Word, sobre un lienzo que representa una página de papel.

Al volver a la vista normal quedan en pantalla las líneas de impresión, que definen donde se cambia de página al imprimir.


Estas líneas resultan bastante molestas.

Hoy os propongo como ocultarlas mediante una macro de VBA.


La podremos ejecutar desde el asistente de macros.

O mediante un botón personalizado en la cinta de tareas o la barra de acceso rápido.


El resultado es la página en modo normal como al abrir un libro nuevo.

Con esta macro podréis ocultarlas rápidamente.


Se trata de una única instrucción.

La muestro a continuación en texto, para que podáis copiar y pegar.

Sub ocultarLineasImpresion()

    ActiveSheet.DisplayPageBreaks = False

End Sub