Cómo crear procedimientos en VBA Excel

Los procedimientos son las unidades de código más pequeñas que se pueden ejecutar. Los puedes identificar porque siempre comienzan y terminan con las mismas instrucciones:

  • Sub – End Sub
  • Function – End Function
  • Property – End Property

Puedes crear los procedimientos en los objetos Hoja, ThisWorkbook, Módulos y UserForms. Mi recomiendación es que utilices siempre módulos estándar para almacenarlos, siempre que no sean procedimientos relacionados con eventos, para lo cual, deberás guardarlos en el objeto que corresponda.

Así que antes de crear un procedimiento, primero debes saber crear o eliminar un módulo:

Cómo insertar y eliminar un módulo VBA

Para agregar un módulo al proyecto de VBA, sólo tienes que ir al menú Insertar y hacer clic en Módulo. Automáticamente se creará una carpeta (Módulos) donde aparecerá el módulo por defecto Módulo1. Este nombre puedes modificarlo en cualquier momento en la ventana Propiedades. Te aconsejo que modifiques el nombre antes de crear cualquier procedimiento. Si ya existen procedimientos en otros módulos que hacen referencia al nuevo módulo y luego se cambia el nombre, VBA no será capaz de encontrar la ubicación del procedimiento al que se llama.

insertar-un-modulo-vba

Para quitar un módulo del proyecto de VBA, haz clic con el botón derecho del ratón en el módulo a eliminar y selecciona Quitar Módulo1.

A continuación aparecerá un cuadro de diálogo que te preguntará si deseas exportar el contenido antes de eliminarlo. Pulsa en No y el módulo se eliminará.

quitar-modulo-vba-excel

Cómo crear un procedimiento Sub

Para crear un procedimiento Sub puedes hacerlo de dos formas: Escribiéndolo directamente en la ventana de código o haciendo clic en el menú Insertar y pulsando Procedimiento. En el cuadro de diálogo que aparece, selecciona Sub.

Para insertar el procedimiento a mano:

  1. Accede al Editor de VBA e inserta un nuevo módulo. En la ventana Código, escribe la palabra Sub y, a continuación introduce el nombre de la macro, por ejemplo Prueba_Macro.
  2. Pulsa Intro. VBA agregará después del nombre un par de paréntesis y debajo se insertará la instrucción End Sub.
  3. Entre las dos líneas, escribe el código a ejecutar, por ejemplo:
MsgBox "Prueba de introducción de una macro", , "Ayuda Excel"

insertar-procedimiento-sub-vba

Así de fácil.

Para introducir el mismo procedimiento mediante el menú:

  1. Pulsa en el menú Insertar – Procedimiento. Se abrirá un cuadro de diálogo en el que debes seleccionar algunas opciones:  el tipo del procedimiento, el ámbito donde actúa y decidir si las variables que se van a declarar se utilizarán sólo de forma local.
  2. Al pulsar Intro aparecerán las instrucciones de inicio y cierre del procedimiento.

insertar-procedimiento-automatico-vba-excel

Cómo crear un procedimiento Function

Al igual que los procedimientos Sub, los procedimientos Function se pueden crear en cualquier objeto contenedor de código. También es algo sencillo de hacer, pero para verlo todavía más claro, te lo muestro en un ejemplo en el que te enseñaré a crear una función para calcular el perímetro de un pentágono:

  1. Inserta un módulo nuevo. En la ventana Código escribe Function y a continuación el nombre de la función: por ejemplo perimetro_pentagono (Lado).
  2. Pulsa Intro para que VBA agregue la instrucción del final del procedimiento (End Function).
  3. Entre las dos líneas, escribe el siguiente código, que será el que calcule el perímetro:
y = lado * 5
perimetro_pentagono = y

insertar-procedimiento-function-excel

Como te comenté aquí, puedes utilizar la instrucción Exit Function para salir de la función antes de que finalice. Pero… ¿para qué vas a querer salir de la función?

Imagina, por ejemplo, que si el argumento introducido (lado) es una letra o un número negativo, sería imposible calcular el resultado. Para evitar la que la función dé un error habría que salir de ella cuando se detecten estos valores. Observa el siguiente código:

Function perimetro_pentagono(Lado)
If Lado <= 0 Then
MsgBox “Ingresar un número mayor que 0”
Exit Function
Else
P = Lado * 5
Perimetro_pentagono = P
End If
End Function

Al igual que los procedimientos Sub, las funciones también pueden ser declaradas como públicas o privadas.

Resumiendo…

Ahora ya sabes dónde y cómo crear tus propios procedimientos Sub y Function. Recuerda siempre incluir comentarios en ellos para recordar más adelante cómo funcionan (te aseguro de que te olvidarás con el tiempo).

¿Me ayudas a promocionar este contenido?

Share on facebook
Facebook
Share on google
Google+
Share on twitter
Twitter
Share on linkedin
LinkedIn
Consultoría plantillas Excel
Foro Excel
La destreza y el perfeccionismo quizá sean las dos virtudes que me permiten ayudar a mis clientes a facilitar las tareas administrativas de sus negocios... y son las culpables de que me guste el origami. +info.

¿Quieres ahorrarte horas de trabajo diario?

macros excel manual

Descarga este informe y aprenderás a crear tus propias macros de forma rápida y sencilla

INFORMACIÓN BÁSICA SOBRE PROTECCIÓN DE DATOS

Responsable: Sergio Andrés Celemín

Finalidad: Gestionar y enviar información de boletines y promociones a través de correo electrónico.

Legitimación: Consentimiento del interesado.

Destinatarios: Tus datos se encuentran alojados en mi hosting Hetzner Online GmbH.

Derechos: Puedes ejercitar en cualquier momento tus derechos de acceso,
rectificación, supresión, oposición y demás derechos legalmente establecidos a
través del email sergio@ayudaexcel.com.

Información adicional: Encontrarás más información en la política de privacidad.