El propósito de la función pública es proporcionar un acceso completo a la función de cualquier otra subrutina en un libro de Excel . Por ejemplo , si ha escrito una función llamada " ParseLastName " que extrae el apellido de una persona a partir de una cadena que contiene los dos nombres y apellidos , muchas partes de su código VBA , repartidos en los módulos de codificación diferentes, puede ser necesario utilizar esta función . Hacer la función privada evitaría el uso de los módulos " ParseLastName ," para hacer pública esta función.
Reconociendo
puede reconocer si una función es pública mediante la búsqueda de la palabra "público " antes de la " función" de palabras clave en cualquier lugar de VBA donde se puede escribir una subrutina , incluyendo los " ThisWorkbook " módulos, módulos de clase y los módulos " Hoja " , que contienen subrutinas para cada hoja de cálculo en un libro de Excel . No todas las funciones públicas utilizan la palabra "público " , sin embargo. Si esta palabra clave no está presente, la función sigue siendo pública , a menos que tenga la palabra "privado" , como en " someFunction función privada ".
Ejemplo de aplicación
< p> las funciones públicas proporcionan los medios para crear funciones definidas por el usuario que Excel listas en su cuadro de diálogo "Insertar función" en la pestaña de " fórmulas" . Para crear una función definida por el usuario que calcula el número de días hasta la próxima Navidad, primero pegar la siguiente función pública en un nuevo módulo de VBA , a continuación, volver a Excel y haga clic en el botón " Fx " por encima de la rejilla de hoja de cálculo. Haga clic en la categoría " Definido por el usuario " , haga doble clic en el elemento " DaysToChristmas " que aparece. Excel inserta su función dentro de la hoja de cálculo activa .
DaysToChristmas Public Function () As Integer Dim
Navidad
CurrentYear Dim As Integer
CurrentYear = Año ( ahora)
navidad = " 25/12 /" & CurrentYear
DaysToChristmas = DateDiff ("d " , ahora ( ) , DateValue (Navidad ))
End Function
cuando no Se Usa
no utilice una función pública , cuando usted ha escrito una subrutina para su uso en un contexto específico. Utilice una función privada en su lugar. Por ejemplo, si usted necesita una función para quitarse el tercer carácter desde el principio de una cadena, y sólo una subrutina llamará a esta función, ejecútese esta función auxiliar en el mismo módulo que la subrutina que lo necesita , y os lo privado. El peligro de declararlo pública es que es posible que más adelante tenga que escribir una función pública diferente con el mismo nombre. VBA mostrará un mensaje de error , en este caso , ya que no sé a qué función usted pretende ejecutar.