Cuando estamos en el Explorador de Proyectos vemos todos los objetos que admiten código en VBA:
Private Sub Workbook_Open()
End Sub
- Hojas
- ThisWorkbook
- Modulos
- UserForms
- Modulos
Dentro de estos objetos (los 4 primeros tienen su modulo asociado) podemos crear 3 clases de procedimientos:
- Sub
- Function
- Property
Además debemos saber que de forma predeterminada todos los procedimientos son públicos es decir pueden ser llamados desde cualquier parte del proyecto. En cambio si hacemos un procedimiento que sea Private solo puede ser llamado desde dentro del módulo en el que esté incluido.
El siguiente procedimiento de tipo Sub solo puede ser llamado desde el módulo que tiene Thisworkbook:
Private Sub Workbook_Open()
End Sub
Procedimiento Sub
Un procedimiento sub lo forma un conjunto de instrucciones que realizan una serie de acciones y dichos procedimientos los podemos dividir en dos:
- Procedimientos Generales. Los que se declaran dentro de un módulo
- Procedimientos de Evento. Se ejecutan cuando se produce una determinada situación, por ejemplo hacer un clic en un botón
Es importante saber que el nombre de un procedimiento no admite espacios.
El procedimiento acaba cuando encontramos la instrucción End Sub o tenemos una salida del mismo mediante una condición.
Las ordenes de este procedimiento se ejecutan secuencialmente salvo condiciones o bucles.
Sub Prueba()
Primera
Segunda
Tercera
.....
End Sub
Ámbito de procedimientos
La instrucción Sub puede ir precedida por lo siguiente que especifica el ámbito (visibilidad) del mismo:
- Public
- Private
- Static
Un procedimiento sin poner nada por omisión es público, es decir poner Public Sub o Sub es lo mismo, por lo que son visibles en todo el proyecto.
Un procedimiento es Private cuando solo se ve desde los procedimientos dentro del módulo en el que esté definido dicho procedimiento.
Static no tiene que ver con la visibilidad del procedimiento ya que puede ser Public o Private lo único que significa es que se conservan los valores de las variables aunque salgamos del mismo.
En la siguiente imagen vemos todos los tipos de procedimientos y sus salidas con la orden Exit Sub:
Procedimiento Function
Excel como sabemos dispone de un montón de funciones que pueden ser llamadas desde VBA usando el comando WorksheetFunctions y además el propio VBA tambien dispone de las suyas pero aun así a veces es necesario debido a que necesitemos cálculos mas complejos o menos estandar crearnos nuestras propias funciones y para eso están los procedimientos Function.
De la misma forma que un procedimiento Sub las Function admiten argumentos y a diferencia de los primeros devolverán un valor cuyo tipo debemos declarar el tipo de variable según el valor que devolvamos, vease integer, double, string....
Comentarios
Publicar un comentario