La mayoría de los lectores ya saben que puede crear funciones y subrutinas usando VBA. Esto no es diferente de lo que es bajo el nombre de VBA, Visual Basic. Normalmente, una macro aparece en la lista de macros cuando muestra el cuadro de diálogo Macros (Alt + F8), a menos que se cumpla una de estas tres condiciones:

  • La macro es una función. Las funciones normalmente devuelven información y requieren que se les pase información. Dado que ejecutar una macro desde la lista de macros no permite que suceda ninguna de estas cosas, Word calcula que no es necesario enumerarla.

  • La macro es una subrutina con parámetros. Word asume que, dado que los parámetros son necesarios y no puede proporcionar parámetros eligiendo la subrutina de la lista de macros, no es necesario enumerarla.

  • La subrutina ha sido declarada Privada. Esto significa que la subrutina solo es útil para codificar dentro del módulo en el que está declarada.

El resultado de estas tres condiciones es que el único tipo de macro que aparece en el cuadro de diálogo Macros es una subrutina no privada sin parámetros. Sin embargo, en determinadas situaciones, es posible que tampoco desee los incluidos en la lista. Por ejemplo, es posible que haya creado algunas subrutinas universales que no hacen nada útil si se llaman por sí mismas; están diseñados para ser llamados desde otro código. Por ejemplo, considere la siguiente macro:

Sub MySub()

MsgBox "We are running the macro"

End Sub

Esta macro aparecerá en el cuadro de diálogo Macros. Si no desea que aparezca, hay varias soluciones que puede buscar, todas las cuales se vuelven obvias al examinar las tres formas en que las macros se excluyen de la lista de macros. La primera solución potencial es examinar su código y averiguar si es realmente «universal». ¿Necesita el código de más de un módulo? Si no lo hace, declare la subrutina Privada; no aparecerá en el cuadro de diálogo Macros. Por tanto, la macro de problemas anterior se convierte en la siguiente:

Private Sub MySub()

MsgBox "We are running the macro"

End Sub

La segunda forma de ocultar la macro es simplemente convertirla en una función.

Esto puede sonar extraño, especialmente si no desea devolver ningún valor, pero está perfectamente permitido. En VBA, una función no tiene que devolver un valor. En ausencia de declarar explícitamente un valor de retorno, la función devolverá un resultado predeterminado (por ejemplo, Boolean devuelve False, String devuelve «», etc.) Por lo tanto, el procedimiento del problema podría cambiarse a una función y declararse como se muestra aquí:

Function MySub() As Boolean     MsgBox "We are running the macro"

End Function

Este procedimiento no se mostrará en el cuadro de diálogo Macros y no requiere argumentos. Devolverá False por defecto, pero este resultado se puede ignorar. Dependiendo de la naturaleza de la subrutina que está cambiando, puede ser beneficioso para usted realmente permitir que la función convertida devuelva Verdadero o Falso dependiendo del éxito de lo que se está haciendo en el código. En este caso, la función convertida es una función real y no una subrutina ficticia, ya que devuelve algo de valor.

La tercera solución potencial es utilizar algunos parámetros ficticios con la subrutina. No necesita hacer nada con ellos dentro de la subrutina en sí, pero al incluirlos, el procedimiento no aparece en la lista de macros. En este escenario, la subrutina del problema se cambia a algo como lo siguiente:

Sub MySub(Void As Integer)

MsgBox "We are running the macro"

End Sub

Ahora, el procedimiento no aparece en la lista de macros, pero debe cambiar la forma en que se llama a la subrutina. Debe modificar cada instancia para que se pase un parámetro, aunque nunca se utilice.

_Nota: _

Si desea saber cómo usar las macros descritas en esta página (o en cualquier otra página de los sitios WordTips), he preparado una página especial que incluye información útil.

link: / wordribbon-WordTipsMacros [Haga clic aquí para abrir esa página especial en una nueva pestaña del navegador].

WordTips es su fuente de formación rentable en Microsoft Word.

(Microsoft Word es el software de procesamiento de texto más popular del mundo). Este consejo (1137) se aplica a Microsoft Word 97, 2000, 2002 y 2003. Puede encontrar una versión de este consejo para la interfaz de cinta de Word (Word 2007 y más tarde) aquí:

enlace: / wordribbon-Hiding_Macros [Ocultar macros].