Cómo agregar nuevas funciones

13/10/2005 - 04:37 por José Torres Plascencia | Informe spam
Hola a todos,
Solicito su apoyo para lo siguiente:
Tengo Excel 2000; ahora tengo una nueva función con la que voy a trabajar,
pero quiero saber como puedo agregarla a las funciones ya existentes por
default en el programa. Es decir no pertenece al grupo original de funciones
que trae Excel cargadas.

Gracias
 

Leer las respuestas

#1 Héctor Miguel
13/10/2005 - 10:09 | Informe spam
hola, José !

... tengo una nueva funcion con la que voy a trabajar... como puedo agregarla a las funciones ya existentes... en el programa [...]



te paso algo de informacion con respecto al uso de procedimientos [sub o function] de uso 'general'...
si cualquier duda [o informacion adicional]... comentas ?
saludos,
hector.
______
para que un procedimiento [sub o funcion] este 'disponible' para cualquier libro [sin tener que copiarla a cada libro]
es necesario que el codigo este en el libro de macros 'Personal.xls', o en algun complemento [o... 'Add-In']
en cualquier 'caso' [personal o add-in]... 'tendras que cargar' con el archivo a otra/s pc/s que 'usen' la/s macro/s
de otra manera [NO 'presente' el archvo CON el/los procedimiento/s sub o funcion] NO seran 'reconocidas' por excel

con relacion al 'libro de macros personales': ->'Personal.xls'<- [?]
1.- su 'objetivo' es que todos 'sus' procedimientos esten disponibles para todos los libros [durante la sesion]
[a menos que los declares como 'Private' o en el modulo que los contiene pongas la declaracion 'Option Private Module']
2.- requisito INDISPENSABLE es que LA VENTANA del archivo este oculta
=> NO 'confundir' con el atributo oculto de un archivo en el sistema operativo <3.- [posiblemente] 'perderas' la presentacion de un libro en blanco al 'arrancar' [solamente] excel
4.- si lo 'tienes que' trasladar/copiar A OTRAS pc's... PREGUNTA PRIMERO si el usuario de la pc usa 'su' personal.xls

si no has 'generado' tu libro de macros 'personales'... lo puedes crear [p.e. la forma mas 'simple' es:]
'generando' una [nueva?] macro ... => herramientas -> macro -> grabar nueva macro... <y en en las opciones de la macro => Guardar macro en: Libro de macros personal <la aplicacion [excel] 'se encargara' de grabarlo en el directorio de inicio.
editas [o borras... o sustituyes] la macro grabada y 'pones' ahi el codigo del procedimiento [sub o funcion]
[o 'vas' agregando los que consideres 'de uso comun o frecuente]

_____
si ademas quisieras dar algun tipo de 'soporte' al usuario para que 'sepa' lo que debe proporcionar a tus argumentos...

op1: [me parece que] la opcion mas 'barata' [por sencilla] pudiera ser...
a) dar a los argumentos [de tus funciones] nombres 'acordes' a su funcionamiento
[similares a los acostumbrados por las funciones incorporadas de la aplicacion]
y 'aprovechas' que los usuarios [normalmente] ya estan 'acostumbrados' a tales convencionalismos :))
b) 'cargar' con unos comentarios 'generales' a la funcion [no a cada argumento]
[aunque... solo estarian 'disponibles' si la funcion se ejecuta desde el asistente] :-(
-> te paso un ejemplo sencillo al final del presente ;)

op2: si [de todas formas] requieres de alternativas mas 'avanzadas'...
te paso [algo mas de] 'informacion' al respecto al final del presente :)
_____
op1: ejemplo usando el metodo Application.MacroOptions... para una funcion personalizada:
el argumento 'Description' [que es el que] sirve para 'informar' al usuario +/- que hace [y algo de sus argumentos]...
-> tiene un limite de 255 caracteres :-(
-> tienes 'disponibles' [un maximo de] 4 lineas de texto :)
las 4 se muestran 'desde' que el usuario hace uso del asistente... en el primer dialogo [solamente]
una vez 'editando' los argumentos de la funcion [en el segundo dialogo] SOLO se muestran 2 lineas de texto :-((
[obviamente] el texto 'descriptivo' que estoy usando en el ejemplo 'excede' a los parametros necesarios ejemplificados ;)
y... la longitud del texto del ejemplo es ya de 245 carcteres [dispones de 10 mas, pero... con 11 -o mas-... FALLA] :-((
-> puedes especificar -ademas- a cual de las categorias de las funciones se integrara 'tu' funcion personalizada :))
= una funcion de ejemplo en un modulo de codigo 'normal' ==Function AF_Activo(ByVal Ref As Range) As Boolean
If Not Ref.Parent.AutoFilterMode Then Exit Function
Dim Filtro As Byte: Application.Volatile
With Ref.Parent.AutoFilter
If Intersect(Ref.Cells(1, 1), .Range) Is Nothing Then Exit Function
Filtro = Ref.Column - .Range.Column + 1: AF_Activo = .Filters(Filtro).On
End With
End Function
la 'carga' del texto 'inicial' de ayuda... en el modulo de codigo del libro [ThisWorkbook] ==Private Sub Workbook_Open()
Application.MacroOptions _
Macro:="AF_Activo", _
Description:="Devuelve Verdadero/Falso " & _
"si la referencia especificada tiene activados los AutoFiltros" & vbCr & _
"El argumento ""Ref"" DEBE SER una referencia de celda." & vbCr & _
"Otros argumentos segun sean requeridos." & vbCr & _
"Tercera y cuarta lineas de texto SOLO en el dialogo ""principal"".", _
Category:=9
End Sub
como informacion adicional... a partir de xl2000, estos son los numeros de cada categoria:
0 = Todas
1 = Financieras
2 = Fecha y Hora
3 = Matematicas y Trigonometricas
4 = Estadisticas
5 = Busqueda y Referencia
6 = Base de Datos
7 = Texto
8 = Logicas
9 = Informacion
10 = Comandos
11 = Personalizar
12 = Macro Control
13 = DDE / Externo
14 = Definidas por el Usuario
15 = Ingenieria
_____
op2: si quieres agregar 'descripciones' para los argumentos de la funcion [ademas de a la funcion]...
es necesario 'cargar' la funcion [y sus argumentos] en una libreria 'comun' [generalmente user(32).dll]
utilizando para ello otras funciones: REGISTER y UNREGISTER [para 'descargarla'], ademas de que...
-> esas funciones SOLO estan 'disponibles' a traves del metodo 'ExecuteExcel4Macro' del objeto Application
-> es necesario conocer [INDISPENSABLE para registrar] EXACTAMENTE el 'tipo' de datos [funcion y argumentos]
[despues 'entenderas mejor' este punto] :))
es un tema [escabroso por] 'dificil de explicar' [de manera 'sencilla'], mas no [imposible] de comprender.
de cualquier forma, [estoy seguro que son los mejores] los sitios donde encontraras informacion adecuada son:
1) en el sitio de John Walkenbach, en la seccion de Excel Expert E-Letter, Ejemplar #9 de fecha Julio 15, 1999
hay una seccion titulada: Power Programming Techniques created by Laurent Longre.
-> http://j-walk.com/ss/excel/eee/eee009.txt <- ['pasando' la mitad de la pagina]...
encontraras un ejemplo de [para 'empezar a entender'] su forma de uso.
2) en la pagina de su autor Laurent Longre [http://xcell05.free.fr/] encuentras informacion mas detallada
-> pulsa el boton de 'English page', revisa la seccion de 'funcustomize.dll' [libreria para personalizar funciones]
-> descarga/instala la libreria [y un XLA de ejemplo] en:
http://xcell05.free.fr/downloads/FunCustomize.zip

si [probablemente] quedaran dudas... comentas? o... comentas tu experiencia 'despues de...' ?

Preguntas similares