• Saltar a la navegación principal
  • Saltar al contenido principal
  • Saltar a la barra lateral principal

Tutorial Excel

Aprende Excel

¡¡¡Más de 300 lecciones de Excel GRATIS!!!
  • Inicio
  • Blog
  • Funciones
  • Gráficos
  • Trucos
  • Macros
  • Generalidades

Macros

VBA y las macros

Introducción al VBA

Todas las fórmulas, funciones y acciones de Excel en realizadas se ejecutan utilizando un código que no vemos. Se ejecuta en un entorno de programación denominado VBA.

Definición de VBA

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. Es un entorno de desarrollo que se encuentra dentro de cualquier aplicación de Office. Con VBA se permite a usuarios y programadores ampliar las funcionalidades de programas de Microsoft Office.

Las macros y su relación con VBA

Visual Basic para Aplicaciones es un subconjunto casi completo de Visual Basic 5.0 y 6.0. De hecho, casi 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. La única diferencia es que el programa final no se puede compilar separadamente del documento, hoja o base de datos en que fue creado. Realmente se convierte en una macro.

Con la generación de las macros se pueden automatizar tareas, que registradas debidamente mediante códigos en VBA, se puedan utilizar en cualquier momento cuando se ejecute una macro.

Activación de la ficha Desarrollador

Para poder realizar trabajos en VBA debemos de activar la ficha Desarrollador.

Los principales botones de la ficha Desarrollador

Dentro de la ficha Desarrollador nos encontramos con los siguientes botones:

    • Visual Basic: Abre la ventana editora de VBA. Se puede acceder rápidamente mediante la combinación de teclas Alt+F11.
    • Macros: Abre la ventana de diálogo de selección de macros. En esa ventana se puede seleccionar la macro para ejecutarla, modificarla , eliminarla o crear una macro nueva. Se puede acceder rápidamente mediante la combinación de teclas Alt+F8.
    • Grabar una macro: Permite iniciar una grabación de una macro. Una vez pulsado este comando todo lo que se realice se queda grabado como parte de la macro.
    • Seguridad de macros: Permite personalizar la configuración de seguridad de las macros.
    • Insertar: Despliega unos controles para el diseño de formularios en la hoja de Excel.

El entorno VBA

Si pulsamos sobre el botón Visual Basic se abre la siguiente ventana editora de VBA.

Tiene un menú superior y se divide en tres ventanas diferentes:

  • El explorador de proyectos: En la parte superior izquierda. Nos permite ver la estructura general del proyecto VBA.
  • La ventana Propiedades: En la parte inferior izquierda.Muestra las características de un determinado objeto en VBA.
  • La ventana de código: En la parte derecha. Aquí  se escribe el código VBA.

La seguridad de las macros

Las macros son un código de programación con el que se puede realizar casi cualquier cosa. Eso también tiene su peligro, ya que puede tener código malicioso desarrollado por otras personas con malas intenciones. Así puede servir para borrar archivos, robar información o dañar nuestro sistema operativo. Por ello, la seguridad de macros tiene un papel tan importante.

Una instalación típica de Excel tiene las macros des habilitadas con notificación. Es recomendable dejar esta opción de seguridad, dando autorización solo a documentos que provienen de una fuente confiable.

Macro para abrir la calculadora

Veremos una sencilla macro que nos sirve para abrir la aplicación de calculadora de Microsoft.

Esto es muy útil cuando le queremos asignar esta macro a un botón con la imagen de una calculadora. Así, al ser pulsado, nos abre la calculadora de Microsoft.

Macro para abrir la calculadora

El código a insertar para abrir la calculadora de Microsoft es el siguiente:

Sub calculadora()
Application.ActivateMicrosoftApp Index:=0
End Sub

Cuando ejecutamos esta macro en cualquier momento se abre la calculadora tal y como se observa en la siguiente imagen:

Como indicamos anteriormente, esto queda especialmente bien cuando se asocia a un botón, en el que, al hacer clic, se abra la calculadora.

Macro para pasar a mayúsculas o minúsculas la celda activa

Veremos una sencilla macro que nos sirve para pasar automáticamente la celda activa a mayúsculas o minúsculas.

Macro para pasar a mayúsculas

El código a insertar para pasar a mayúsculas la celdas activa es el siguiente:

Sub mayusculas()
ActiveCell = UCase(ActiveCell)
End Sub

Macro para pasar a minúsculas

El código a insertar para pasar a minúsculas la celdas activa es el siguiente:

Sub minusculas()
ActiveCell = LCase(ActiveCell)
End Sub

 

Macro para insertar varias filas o columnas

En esta ocasión vamos a ver dos macros que nos servirán para introducir de forma automática un número que determinemos de filas o columnas. Por ello, tanto en un caso como en el otro, cuando ejecutemos la macro nos abrirá un cuadro de diálogo en el que nos pide que le indiquemos el número de filas o columnas a insertar.

Lo mejor de esta macro es que es muy fácil insertar un número elevado de filas o columnas.

Macro para insertar varias filas o columnas en Excel

Macro para insertar varias filas

Esta macro, cuando la ejecutemos nos pedirá el número de filas que queremos añadir. Nos lo pide en un Inputbox. Una vez que lo indicamos y le damos a Aceptar nos insertará las filas desde la misma celda que se encuentra activa.

El código de la macro es el siguiente:

Sub InsertarVariasFilas()
Dim i As Integer
Dim j As Integer
ActiveCell.EntireRow.Select
On Error GoTo Last
i = InputBox(«Indica el número de filas a insertar», «Insertar filas»)
For j = 1 To i
Selection.Insert Shift:=xlToDown, CopyOrigin:=xlFormatFromRightorAbove
Next j
Last: Exit Sub
End Sub

Macro para insertar varias columnas

Esta macro, es similar a la anterior pero afecta a las columnas. Nos pedirá el número de columnas que queremos añadir en un Inputbox. Una vez que lo indicamos y le damos a Aceptar nos insertará las columnas desde la misma celda que se encuentra activa.

El código de la macro es el siguiente:

Sub InsertarVariasColumnas()
Dim i As Integer
Dim j As Integer
ActiveCell.EntireColumn.Select
On Error GoTo Last
i = InputBox(«Indica el número de columnas a insertar», «Insertar columnas»)
For j = 1 To i
Selection.Insert Shift:=xlToRight, CopyOrigin:=xlFormatFromRightorAbove
Next j
Last: Exit Sub
End Sub

Macro para mostrar todas las filas y columnas ocultas de todas las hojas de un fichero Excel

En esta ocasión vamos a ver una macro sencillita que nos puede permitir ahorrar mucho tiempo mostrando filas y columnas ocultas en numerosas hojas de Excel diferentes.

En ocasiones tenemos ficheros de Excel en los que queremos tener todo su contenido visible. No queremos que existan filas o columnas ocultas.

Si bien hay diferentes formas con las que podríamos realizar esto, esta sencilla macro nos realiza el trabajo de una forma muy rápida y sencilla.

Macro para mostrar todas las filas y columnas de todas las hojas

Crear la macro

Primero debemos abrir el editor de Visual Basic (VBE) utilizando la combinación de teclas Alt + F11. Hacemos clic sobre el icono de nuestro fichero (ThisWorkbook) con el botón derecho (Insertar – Módulo) o en el Menú (Insertar – Módulo). Se nos abrirá en la parte derecha el editor VBA, en el cual debemos escribir o copiar el código de la macro.

El código de la macro es el siguiente:

Sub MostrarOcultas()
‘Muestra todas las filas y columnas de todas las hojas
Dim Hoja As Worksheet
For Each Hoja In Application.Worksheets
Hoja.Select
Cells.Select
Selection.EntireRow.Hidden = False
Selection.EntireColumn.Hidden = False
Next
End Sub

 

Finalmente, guardamos la macro como Libro de Excel habilitado para macros (*.xlsm)

Ejecutar la macro

Deberemos abrir el cuadro de diálogo de Macros. Bien haciendo clic sobre el icono de “ver macros” de la ficha Desarrollador o bien utilizando la combinación de teclas Alt + F8. Del cuadro de diálogo de la macro deberemos seleccionar la que acabamos de crear y pulsar sobre el botón Ejecutar.

 

Veremos que una vez hayamos hecho clic en «Ejecutar» todas las hojas de ese fichero tienen todas sus filas y columnas visibles (no ocultas).

 

 

Evitar parpadeos al ejecutar macro

En muchas ocasiones, cuando ejecutamos una macro en Excel se producen parpadeos mientras se está ejecutando. Esto hace que la macro se ejecute más lentamente.

Esto es debido a que la pantalla se está refrescando continuamente durante la ejecución de cada instrucción que compone la macro. Por ello, cuando más instrucciones y más «grande» sea nuestra macro.

Además provoca una ejecución más molesta para el usuario, ya que está viendo, aunque de forma muy rápida, lo que está haciendo la macro mientras se está ejecutando.

Esto no es algo deseable cuando implantamos nuestra macro.

Pero esto lo podemos evitar muy fácilmente con la propiedad Application.ScreenUpdating .

Evitar parpadeos con Application.ScreenUpdating

La propiedad Application.ScreenUpdating es la que indica a la pantalla que se refresque después de cada instrucción de la macro. ç

Por tanto, lo que nos interesa es que antes de ingresar el código de la macro esta propiedad tenga el valor de FALSE (falso). Después del código de la macro volvemos a establecer el valor de TRUE (verdadero), para que se refresque la pantalla después de ejecutar todo el código de la macro.

evitar parpadeos

Las dos líneas a incluir en nuestro código son las siguientes:

  • Application.ScreenUpdating = False     (Esta linea desactiva el parpadeo de la pantalla)
  • Application.ScreenUpdating = True      (Esta linea activa el parpadeo de la pantalla)

Veámoslo con un ejemplo.

Evitar el parpadeo si nosotros estamos escribiendo el código de la macro

Cuando no estamos utilizando la grabadora de macros, sino que estamos escribiendo nosotros mismos el código, lo único que tenemos que hacer es ingresar las dos líneas de código relacionadas con la propiedad Application.ScreenUpdating.

Lo haríamos de la siguiente forma:

Sub NombreMacro()

Application.ScreenUpdating = False

Código de la macro…

Application.ScreenUpdating = True

End Sub

Evitar el parpadeo cuando hemos utilizado la grabadora de macros

Cuando hemos grabado la macro con la grabadora de macros, no tenemos la forma de ingresarle esas dos líneas de código mientras estamos grabando. Por lo tanto, después de haber grabado la macro deberemos modificarlas para insertarle las dos líneas que evitan el parpadeo.

Para ello, en la ficha Programador o Desarrollador seleccionaremos Macros.

Después seleccionamos la macro que nos interesa, y pincharemos en el botón Modificar.Se nos abrirá el código de la macro, por lo que lo único que debemos hacer es insertar las dos líneas señaladas en color verde.

Sub NombreMacro()

Application.ScreenUpdating = False

Código de la macro…

Application.ScreenUpdating = True

End Sub

 

  • « Ir a la página anterior
  • Página 1
  • Página 2

Barra lateral principal

Buscar

Más de 300 trucos de Excel ¡¡¡GRATIS!!!

¡¡¡Más de 300 videos!!! gratis

Entradas y Páginas Populares

  • Excel 2010
    Excel 2010
  • Función PRONOSTICO.LINEAL en Excel
    Función PRONOSTICO.LINEAL en Excel
  • Los SUBTOTALES en Excel
    Los SUBTOTALES en Excel
  • Función SI.CONJUNTO en Excel
    Función SI.CONJUNTO en Excel
  • Tablas de datos en Excel
    Tablas de datos en Excel

Síguenos

  • Facebook
  • Instagram
  • YouTube
  • TikTok
Para aprovechar al máximo el potencial de Excel. Desde un nivel básico hasta un nivel experto.

Ir al blog

Mi canal de Youtube

Contacto

No te pierdas las novedades

100% libre de spam.

Sobre mí                            Aviso legal                            Política de privacidad y cookies

Gestionar el consentimiento de las cookies
Las cookies se utilizan para la personalización de anuncios".
Para ofrecer las mejores experiencias, utilizamos tecnologías como las cookies para almacenar y/o acceder a la información del dispositivo. El consentimiento de estas tecnologías nos permitirá procesar datos como el comportamiento de navegación o las identificaciones únicas en este sitio. No consentir o retirar el consentimiento, puede afectar negativamente a ciertas características y funciones.
Funcional Siempre activo
El almacenamiento o acceso técnico es estrictamente necesario para el propósito legítimo de permitir el uso de un servicio específico explícitamente solicitado por el abonado o usuario, o con el único propósito de llevar a cabo la transmisión de una comunicación a través de una red de comunicaciones electrónicas.
Preferencias
El almacenamiento o acceso técnico es necesario para la finalidad legítima de almacenar preferencias no solicitadas por el abonado o usuario.
Estadísticas
El almacenamiento o acceso técnico que es utilizado exclusivamente con fines estadísticos. El almacenamiento o acceso técnico que se utiliza exclusivamente con fines estadísticos anónimos. Sin un requerimiento, el cumplimiento voluntario por parte de tu Proveedor de servicios de Internet, o los registros adicionales de un tercero, la información almacenada o recuperada sólo para este propósito no se puede utilizar para identificarte.
Marketing
El almacenamiento o acceso técnico es necesario para crear perfiles de usuario para enviar publicidad, o para rastrear al usuario en una web o en varias web con fines de marketing similares.
  • Administrar opciones
  • Gestionar los servicios
  • Gestionar {vendor_count} proveedores
  • Leer más sobre estos propósitos
Ver preferencias
  • {title}
  • {title}
  • {title}