PARA HECTOR MIGUEL

02/06/2004 - 17:23 por paul | Informe spam
Hola Hector Miguel; ayudame por favor..

Para llamar una macro de algún libro se utiliza:
Application.run "C:\CARPETA\libro.xls!Macro1" (funciona
perfecto)
pero cuando tienes una dll (realizada en Excel VBA)
llamada prueba.dll que solo tiene una macro1 que solamente
despliega un msgbox:

sub macro1()
MSGBOX("ESTA ES UNA PRUEBA")
end sub


como la llamo...?


Quizá me haya explicado bien



Muchas Gracias

Preguntas similare

Leer las respuestas

#6 Paul
04/06/2004 - 19:25 | Informe spam
Te agradesco mucho por responder el mensaje
te pido disculpas por referir con tu nombre el mensaje, no
creí causar disgustos entre la comunidad de excel y menos
a ti; pero necesito ayuda urgente y veo que tu eres una
especie de GURÚ de excel y vba.

La dll es simple ( para efectos de aprender como se llaman)

La dll tiene le nombre de PRUEBA.DLL y solo tiene el
codigo siguiente:

sub macro1()
msgbox("esta es una prueba")
end sub

ya la registré en windows.. .todo bien

Específicamente esta "DLL" como la llamarías desde codigo
VBA????


Si puedes darme ti mail.. .te agradecería mucho ya que no
dispongo de mucho tiempo conectado a la red...y veo que
ouedo hacerte algunas preguntas, mi correo es



Muchas Gracias
hola, paul !

['dejame iniciar' con un comentario -probablemente-


'sangron'] ;)
[me parece que...] no es 'buena idea' pedir que


responda 'alguien' =>en particular<= :((
[con seguridad...] 'alguien mas' tenga respuesta ANTES


que el 'interpelado', pero... ¿y si 'se la guarda'?

... llamar una macro de algun libro ...




Application.run "C:\CARPETA\libro.xls!Macro1" (funciona
perfecto)
... cuando tienes una dll (realizada en Excel VBA) ...




como la llamo...?

'llamar' a procedimientos en librerias de vinculos


dinamicos [dll = dynamic link library] =>desde vba<>
[probablemente] la 'mejor' manera [y mas 'sencilla']


es... como a 'cualquier otra' API...
=>declarando una 'llamada' a la funcion [en el 'dll'] y


sus argumentos [si los tiene =>y los conoces<=] p.e.
[Public | Private] Declare Function NombreFuncion


Lib "MiDLL" ([By Ref | By Val] [Arg1] [As Tipo], )
[As Tipo]
=>'cuidando' si 'el nombre' de la funcion 'coincide' con


otros procedimientos a los que el proyecto 'tenga acceso'<>=>y [en este caso] quizas 'sea mejor' que
tu 'ArchivoDLL.dll' este 'copiado' en el
directorio 'System' de windows<>
otra 'posibilidad' seria establecer una referencia [en el


proyecto de macros] a la libreria...
[en el editor de vba] herramientas / referencias -
'marcar una liga' al archivo/libreria 'dll'

¿comentas?
saludos,
hector.

.

Respuesta Responder a este mensaje
#7 Manuel Romero
05/06/2004 - 01:02 | Informe spam
Las DLLs creadas en excel no requieren de un modulo de clase publico al
menos?

En VB normal o VBA, lo que haces es poner la DLL en Referencias y despues
puedes crear objetos con la sentencia New, por ejemplo, si el proyecto de
DLL se llama PROYECTO y la clase publica se llama EJEMPLO y contiene tu sub,
se llamaria asi:

Dim obj as Proyecto.Ejemplo
Set obj=New Proyecto.Ejemplo
obj.Macro1()
Set obj=Nothing

Esto es valido porque las DLLs son ActiveX. Tambien puedes usar la sintaxis
de GetObject/CreateObject.

"Paul" escribió en el mensaje
news:1870101c44a58$f576d640$
Te agradesco mucho por responder el mensaje
te pido disculpas por referir con tu nombre el mensaje, no
creí causar disgustos entre la comunidad de excel y menos
a ti; pero necesito ayuda urgente y veo que tu eres una
especie de GURÚ de excel y vba.

La dll es simple ( para efectos de aprender como se llaman)

La dll tiene le nombre de PRUEBA.DLL y solo tiene el
codigo siguiente:

sub macro1()
msgbox("esta es una prueba")
end sub

ya la registré en windows.. .todo bien

Específicamente esta "DLL" como la llamarías desde codigo
VBA????


Si puedes darme ti mail.. .te agradecería mucho ya que no
dispongo de mucho tiempo conectado a la red...y veo que
ouedo hacerte algunas preguntas, mi correo es



Muchas Gracias
hola, paul !

['dejame iniciar' con un comentario -probablemente-


'sangron'] ;)
[me parece que...] no es 'buena idea' pedir que


responda 'alguien' =>en particular<= :((
[con seguridad...] 'alguien mas' tenga respuesta ANTES


que el 'interpelado', pero... ¿y si 'se la guarda'?

... llamar una macro de algun libro ...




Application.run "C:\CARPETA\libro.xls!Macro1" (funciona
perfecto)
... cuando tienes una dll (realizada en Excel VBA) ...




como la llamo...?

'llamar' a procedimientos en librerias de vinculos


dinamicos [dll = dynamic link library] =>desde vba<>
[probablemente] la 'mejor' manera [y mas 'sencilla']


es... como a 'cualquier otra' API...
=>declarando una 'llamada' a la funcion [en el 'dll'] y


sus argumentos [si los tiene =>y los conoces<=] p.e.
[Public | Private] Declare Function NombreFuncion


Lib "MiDLL" ([By Ref | By Val] [Arg1] [As Tipo], )
[As Tipo]
=>'cuidando' si 'el nombre' de la funcion 'coincide' con


otros procedimientos a los que el proyecto 'tenga acceso'<>=>y [en este caso] quizas 'sea mejor' que
tu 'ArchivoDLL.dll' este 'copiado' en el
directorio 'System' de windows<>
otra 'posibilidad' seria establecer una referencia [en el


proyecto de macros] a la libreria...
[en el editor de vba] herramientas / referencias -
'marcar una liga' al archivo/libreria 'dll'

¿comentas?
saludos,
hector.

.

Respuesta Responder a este mensaje
#8 Paul
07/06/2004 - 19:05 | Informe spam
Gracias por tu comentario... mi pregunta nace debido a que
se genera la dll descrita anteriomente sin ningun error,
desde el office developer, entoces necesito saber como
llamar a esa dll que se generó

Saludos!
Paul
Las DLLs creadas en excel no requieren de un modulo de


clase publico al
menos?

En VB normal o VBA, lo que haces es poner la DLL en


Referencias y despues
puedes crear objetos con la sentencia New, por ejemplo,


si el proyecto de
DLL se llama PROYECTO y la clase publica se llama EJEMPLO


y contiene tu sub,
se llamaria asi:

Dim obj as Proyecto.Ejemplo
Set obj=New Proyecto.Ejemplo
obj.Macro1()
Set obj=Nothing

Esto es valido porque las DLLs son ActiveX. Tambien


puedes usar la sintaxis
de GetObject/CreateObject.

"Paul" escribió en el mensaje
news:1870101c44a58$f576d640$
Te agradesco mucho por responder el mensaje
te pido disculpas por referir con tu nombre el mensaje, no
creí causar disgustos entre la comunidad de excel y menos
a ti; pero necesito ayuda urgente y veo que tu eres una
especie de GURÚ de excel y vba.

La dll es simple ( para efectos de aprender como se


llaman)

La dll tiene le nombre de PRUEBA.DLL y solo tiene el
codigo siguiente:

sub macro1()
msgbox("esta es una prueba")
end sub

ya la registré en windows.. .todo bien

Específicamente esta "DLL" como la llamarías desde codigo
VBA????


Si puedes darme ti mail.. .te agradecería mucho ya que no
dispongo de mucho tiempo conectado a la red...y veo que
ouedo hacerte algunas preguntas, mi correo es



Muchas Gracias
hola, paul !

['dejame iniciar' con un comentario -probablemente-


'sangron'] ;)
[me parece que...] no es 'buena idea' pedir que


responda 'alguien' =>en particular<= :((
[con seguridad...] 'alguien mas' tenga respuesta ANTES


que el 'interpelado', pero... ¿y si 'se la guarda'?

... llamar una macro de algun libro ...




Application.run "C:\CARPETA\libro.xls!Macro1" (funciona
perfecto)
... cuando tienes una dll (realizada en Excel VBA) ...




como la llamo...?

'llamar' a procedimientos en librerias de vinculos


dinamicos [dll = dynamic link library] =>desde vba<>>
[probablemente] la 'mejor' manera [y mas 'sencilla']


es... como a 'cualquier otra' API...
=>declarando una 'llamada' a la funcion [en el 'dll'] y


sus argumentos [si los tiene =>y los conoces<=] p.e.
[Public | Private] Declare Function NombreFuncion


Lib "MiDLL" ([By Ref | By Val] [Arg1] [As Tipo], )
[As Tipo]
=>'cuidando' si 'el nombre' de la funcion 'coincide' con


otros procedimientos a los que el proyecto 'tenga


acceso'<>>=>y [en este caso] quizas 'sea mejor' que
tu 'ArchivoDLL.dll' este 'copiado' en el
directorio 'System' de windows<>>
otra 'posibilidad' seria establecer una referencia [en el


proyecto de macros] a la libreria...
[en el editor de vba] herramientas / referencias -
'marcar una liga' al archivo/libreria 'dll'

¿comentas?
saludos,
hector.

.





.

Respuesta Responder a este mensaje
#9 Manuel Romero
07/06/2004 - 21:03 | Informe spam
Habria que ver como se generan esas dll en excel developer, yo no lo
conozco.

De todos modos, trata de colocar la dll en referencias, tal vez asi sea

"Paul" escribió en el mensaje
news:1953001c44cb1$93f054e0$
Gracias por tu comentario... mi pregunta nace debido a que
se genera la dll descrita anteriomente sin ningun error,
desde el office developer, entoces necesito saber como
llamar a esa dll que se generó

Saludos!
Paul
Las DLLs creadas en excel no requieren de un modulo de


clase publico al
menos?

En VB normal o VBA, lo que haces es poner la DLL en


Referencias y despues
puedes crear objetos con la sentencia New, por ejemplo,


si el proyecto de
DLL se llama PROYECTO y la clase publica se llama EJEMPLO


y contiene tu sub,
se llamaria asi:

Dim obj as Proyecto.Ejemplo
Set obj=New Proyecto.Ejemplo
obj.Macro1()
Set obj=Nothing

Esto es valido porque las DLLs son ActiveX. Tambien


puedes usar la sintaxis
de GetObject/CreateObject.

"Paul" escribió en el mensaje
news:1870101c44a58$f576d640$
Te agradesco mucho por responder el mensaje
te pido disculpas por referir con tu nombre el mensaje, no
creí causar disgustos entre la comunidad de excel y menos
a ti; pero necesito ayuda urgente y veo que tu eres una
especie de GURÚ de excel y vba.

La dll es simple ( para efectos de aprender como se


llaman)

La dll tiene le nombre de PRUEBA.DLL y solo tiene el
codigo siguiente:

sub macro1()
msgbox("esta es una prueba")
end sub

ya la registré en windows.. .todo bien

Específicamente esta "DLL" como la llamarías desde codigo
VBA????


Si puedes darme ti mail.. .te agradecería mucho ya que no
dispongo de mucho tiempo conectado a la red...y veo que
ouedo hacerte algunas preguntas, mi correo es



Muchas Gracias
hola, paul !

['dejame iniciar' con un comentario -probablemente-


'sangron'] ;)
[me parece que...] no es 'buena idea' pedir que


responda 'alguien' =>en particular<= :((
[con seguridad...] 'alguien mas' tenga respuesta ANTES


que el 'interpelado', pero... ¿y si 'se la guarda'?

... llamar una macro de algun libro ...




Application.run "C:\CARPETA\libro.xls!Macro1" (funciona
perfecto)
... cuando tienes una dll (realizada en Excel VBA) ...




como la llamo...?

'llamar' a procedimientos en librerias de vinculos


dinamicos [dll = dynamic link library] =>desde vba<>>
[probablemente] la 'mejor' manera [y mas 'sencilla']


es... como a 'cualquier otra' API...
=>declarando una 'llamada' a la funcion [en el 'dll'] y


sus argumentos [si los tiene =>y los conoces<=] p.e.
[Public | Private] Declare Function NombreFuncion


Lib "MiDLL" ([By Ref | By Val] [Arg1] [As Tipo], )
[As Tipo]
=>'cuidando' si 'el nombre' de la funcion 'coincide' con


otros procedimientos a los que el proyecto 'tenga


acceso'<>>=>y [en este caso] quizas 'sea mejor' que
tu 'ArchivoDLL.dll' este 'copiado' en el
directorio 'System' de windows<>>
otra 'posibilidad' seria establecer una referencia [en el


proyecto de macros] a la libreria...
[en el editor de vba] herramientas / referencias -
'marcar una liga' al archivo/libreria 'dll'

¿comentas?
saludos,
hector.

.





.

email Siga el debate Respuesta Responder a este mensaje
Ads by Google
Help Hacer una pregunta AnteriorRespuesta Tengo una respuesta
Search Busqueda sugerida