VBA. Ocultar funciones de la PERSONAL.XLS

02/06/2005 - 13:40 por Luis Garcia | Informe spam
Hola a todos:

Tengo un fichero .XLS que se abre automaticamente al abrir Excel 2000
(en el directorio de inicio, XLSTART).

Dentro de este fichero tengo muchos módulos, formularios, etc... que hacen
utilidades y 'cosas mias', con su barra de herramientas personalizada, etc.
Instalo (copio) este fichero a diferentes usuarios y entonces tienen acceso
a las nuevas utilidades que yo he creado, peeero (como siempre, hay algo):

Cuando le dan a Ejecutar|Macros, salen todas las PUBLIC SUBs de mi fichero,
y si insertan funciones personalizadas, salen todas las PUBLIC FUNCTIONs
también.

Poniendo la propiedad 'IsAddin = True' del Woorkbook, evito que se muestren
todas las SUBs en Ejecutar|Macros, pero las funciones se siguen mostrando.

¿Como poder evitar esto? Porque, ademas :-), me gustaria poder definir que
SUBs y/o FUNCTIONs quiero 'exponer' o no. Una especie de FRIEND function
dentro de un módulo BAS.

Veo todo muy complicado para algo tan sencillo, asi que seguro que me
estoy liando en algun sitio y no lo veo :-).
Cualquier sugerencia sera bienvenida, gracias.

Saludos

PD:
Lo unico que se me ocurre seria crear un .xls/.xla con IsAddin = True con
las SUB/FUNCTION públicas para todo el mundo, y en otro fichero
.xls mis cosas privadas que podrian aprovecha las funciones del anterior
.xls/.xla, pero el problema persistiria: En el momento que cree una funcion
PUBLICA en mi proyecto particular, esta se 'expone' al Excel, cosa que yo no
quiero.
 

Leer las respuestas

#1 Fernando Arroyo
02/06/2005 - 16:01 | Informe spam
Si declaras los módulos y funciones como Private, no aparecerán ni en la lista de macros ni en la de funciones personalizadas. Por ejemplo:

Private Function NoSeVe()

End Function


Un saludo.


Fernando Arroyo
MS MVP - Excel


"Luis Garcia" escribió en el mensaje news:%
Hola a todos:

Tengo un fichero .XLS que se abre automaticamente al abrir Excel 2000
(en el directorio de inicio, XLSTART).

Dentro de este fichero tengo muchos módulos, formularios, etc... que hacen
utilidades y 'cosas mias', con su barra de herramientas personalizada, etc.
Instalo (copio) este fichero a diferentes usuarios y entonces tienen acceso
a las nuevas utilidades que yo he creado, peeero (como siempre, hay algo):

Cuando le dan a Ejecutar|Macros, salen todas las PUBLIC SUBs de mi fichero,
y si insertan funciones personalizadas, salen todas las PUBLIC FUNCTIONs
también.

Poniendo la propiedad 'IsAddin = True' del Woorkbook, evito que se muestren
todas las SUBs en Ejecutar|Macros, pero las funciones se siguen mostrando.

¿Como poder evitar esto? Porque, ademas :-), me gustaria poder definir que
SUBs y/o FUNCTIONs quiero 'exponer' o no. Una especie de FRIEND function
dentro de un módulo BAS.

Veo todo muy complicado para algo tan sencillo, asi que seguro que me
estoy liando en algun sitio y no lo veo :-).
Cualquier sugerencia sera bienvenida, gracias.

Saludos

PD:
Lo unico que se me ocurre seria crear un .xls/.xla con IsAddin = True con
las SUB/FUNCTION públicas para todo el mundo, y en otro fichero
.xls mis cosas privadas que podrian aprovecha las funciones del anterior
.xls/.xla, pero el problema persistiria: En el momento que cree una funcion
PUBLICA en mi proyecto particular, esta se 'expone' al Excel, cosa que yo no
quiero.


Preguntas similares