GetObject

22/12/2005 - 13:01 por Gustavo | Informe spam
A quien pueda ayudarme:
Tengo Excel 2003 y Outlook 2003;
Utilizo la función GetObject para obtener el objeto Outlook que se encuentra
corriendo en mi equipo y la verdad que funciona todo bien; ahora la consulta
viene porque a un compañero le cambiaron la PC (manteniendo las versiones de
Excel y Outlook) pero esta instrucción a dejado de funcionar; en un modulo
tengo algo así

Dim miOl As Outlook.Application
Set miOl = GetObject(, "Outlook.Application")

Repito que el problema no está en el código pues en mi máquina funciona pero
en la nueva máquina aparece el error 429 "El componente ActiveX no puede
crear el objeto"

Supongo que es por un tema de "permisos" pero como en mi máquina lo instalé
hace rato no recuerdo como hacerlo.

Desde ya muchas gracias a todos
Gustavo
 

Leer las respuestas

#1 Héctor Miguel
23/12/2005 - 00:18 | Informe spam
hola, Gustavo !

... Excel... y Outlook 2003... la funcion GetObject para obtener el objeto Outlook que se encuentra corriendo en mi equipo
... la verdad que funciona todo bien... la consulta viene porque a un compa#ero le cambiaron la PC
(manteniendo las versiones de Excel y Outlook) pero esta instruccion a dejado de funcionar; en un modulo tengo algo asi
Dim miOl As Outlook.Application
Set miOl = GetObject(, "Outlook.Application")
Repito que el problema no esta en el codigo pues en mi maquina funciona pero en la nueva maquina aparece
... error 429 "El componente ActiveX no puede crear el objeto"
Supongo que es por un tema de "permisos" pero como en mi maquina lo instale hace rato no recuerdo como hacerlo.



1) [creo que] el 'error' NO es un 'tema de permisos'... si bservas tu comentario inicial con relacion a la funcion 'GetObject'...
-> '... para obtener el objeto Outlook que se encuentra corriendo en mi equipo ...'

2) la funcion [GetObject] 'sirve' -> para 'obtener' un objeto outlook -> 'corriendo/en ejecucion/' [NO 'simplemente' instalado]

3) el error 429... esta avisando que [de seguro] outlook NO se encuentra como una instancia 'activa' de la aplicacion

4) si lo que necesitas es NO 'andar dejando instancias creadas' de la aplicacion [outlook] cada vez que ejecutas tu procedimiento...
a) preven la posibilidad de que outlook NO se este ejecutando [el error 429] con una instruccion -> 'On Error Resume Next'
b) en caso de que se presentara el error... CREA una -nueva?- instancia de la aplicacion con un -> 'CreateObject(...)'
-> ejemplo:
[... otras lineas de tu codigo ...]
On Error Resume Next
Set miOl = GetObject(, "Outlook.Application")
If Err.Number <> 0 Then Set miOl = CreateObject("Outlook.Application")
On Error Goto 0
[... otras lineas de tu codigo ...]

5) otra posibilidad seria que se hubiera perdido la referencia a la biblioteca de objetos de outlook...
-> en el proyecto de macros, en el editor de vba -> revisa en [menu] herramientas / referencias...
-> si esta marcada como 'missing:' o... 'falta:' -?-

si cualquier duda [o informacion adicional]... comentas ?
saludos,
hector.

Preguntas similares