Curso Excel VBA y Macros – Cap. 26 – Procedimientos Sub públicos, privados y cómo ejecutarlos

<<CURSO COMPLETO EN YOUTUBE>>

En este tutorial veremos a fondo el tema de Procedimientos Sub, los cuales generalmente pueden ser considerados como macros. Veremos la manera de cómo declarar macros y algunas maneras de ejecutarlas.

Veremos también que podemos tener procedimientos Públicos y privados, y la diferencia entre ellos.

Ver video Capítulo 26 Excel VBA & Macros

Suscríbete al canal de EXCELeINFO en YouTube para aprender más de Excel y macros.

Qué es un Procedimiento en VBA

  • Un procedimiento es una serie de instrucciones que se encuentran en un Módulo.
  • Un Módulo puede contener varios procedimientos.
  • Un archivo puede contener varios módulos.
  • Regularmente un procedimiento comienza con Sub.
  • Existen varias maneras de llamar o ejecutar procedimientos.

Consideraciones sobre procedimientos

  • Aunque un procedimiento o macro puede contener muchas instrucciones, lo recomendable es tener procedimientos relativamente cortos con su acción bien definida.
  • Un buen desarrollador define bien qué hace cada procedimiento y eso le facilita el mantenimiento del código.

Existen:

  • Procedimientos Sub
  • Funciones (functions)

Sintaxis

La manera habitual de declarar macros o procedimientos es usando la instrucción Sub, pero a continuación vemos que no es la única manera.

[ Private | Public ] [ Static ] Sub nombre [ ( arglist ) ]
[ instrucciones ]
[ Exit Sub ]
[ instrucciones ]
End Sub

Donde:

ELEMENTO

DESCRIPCIÓN

Private

Indica que el procedimiento es privado

Public

Indica que el procedimiento es público

Static

Indica que el procedimiento es estático

Sub

Palabra reservada para declarar procedimientos o macros

Nombre

El nombre que debe llevar el procedimiento

Arglist

Cada uno de los argumentos que se le pasarán al procediemiento, en caso que aplique.

Instrucciones

Cada una de las instrucciones que se ejecutarán

Exit Sub

Salir de la macro en caso de que se cumpla una condición

End Sub

Cierre del procedimiento

Procedimientos Privados

Cuando definimos un procedimiento privado, estamos dando la instrucción de que la macro o el procedimiento sólo puede ser llamado desde una macro del mismo módulo y que no podremos visualizarla desde el cuadro de diálogo de macros.

Una macro privada la definimos así:

Private Sub NombreMacro2()

Dim nombre As String

nombre = “Curso Macros”

MsgBox nombre

End Sub

Procedimientos Públicos

De manera predeterminada, un procedimiento es público, pero podemos usar la palabra reservada Public para dejarlo en claro, aunque no es necesario usarla. Cuando hablamos de macros públicas estamos diciendo que pueden ser llamada desde cualquier procedimiento de cualquier módulo, además de poder ejecutarla desde el cuadro de diálogo de macros.

Public Sub NombreMacro()

Dim nombre As String

nombre = “Curso Macros”

MsgBox nombre

End Sub

Procedimientos Estáticos

Usando la palabra reservada Static indicamos que los valores de las variables se conservarán, incluso después de terminar la macro. Esto es similar a cuando vimos las Variables estáticas.

Static Sub NombreMacro3()

Dim numero As Integer

MsgBox numero

numero = numero + 1

End Sub

Option Private Module

Al inicio de un Módulo podemos usar esta instrucción para forzar a que las macros sean privadas. Usando esta instrucción, las macros sí se pueden llamar desde otras macros, pero no podrán ser vistas en el Cuadro de diálogos de macros.

Llamar o ejecutar macros desde otras macros

Siempre y cuando las macros que mandemos llamar sean públicas, existen estas maneras de ejecutar procedimientos desde otros procedimientos.

  • Call NombreMacro. Usando la intrucción Call.
  • Application.Run NombreMacro. Usando el método Run, además podemos incluir los argumentos que tenga el procedimiento.
  • Módulo1.NombreMacro3. Anteponiendo el nombre del módulo y luego el nombre de la macro.

Procedimientos con argumentos

Así como en las funciones de Excel, también le podremos pasar argumentos a un procedimiento. Este tema lo veremos posteriormente.

Salir de la macro con Exit Sub

Usamos Exit Sub cuando deseamos validar alguna condición, y si esa condición se cumple salimos de la macro sin pasar por el resto de las instrucciones. Uso mucho esta instrucción cuando muestro un mensaje con los botones Si / No. En caso de que se presione No, salimos de la macro.

Cuadro de diálogo Macros

Si nos vamos a la pestaña Vista > Macros > Ver macros, podemos ver las macros que están disponibles en nuestro archivo. En este cuadro de diálogo solo se mostrarán las macros que sea públicas, no así las privadas.

Además, en el cuadro de diálogo de Macros, no podremos visualizar las siguientes macros:

  • Procedimientos de Función.
  • Procedimientos donde usando la instrucción Private.
  • Procedimientos que tengan argumentos.
  • Procedimientos almacenados en un addin, como EXCELeINFO.
  • Procedimientos que sean lanzados por eventos.

Descarga el archivo de ejemplo

026 – Procedimientos.zip

<<CURSO COMPLETO EN YOUTUBE>>

Si te gustó este tutorial por favor regístrate en nuestra Lista de correo y Suscríbete a nuestro canal de YouTube para que estés siempre enterado de lo nuevo que publicamos.

You may also like...