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

Preguntas similare

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.
Respuesta Responder a este mensaje
#2 Gustavo
23/12/2005 - 11:56 | Informe spam
Hola Hector:
Desde ya muchas gracias pero,
1) El tema es que en mi equipo funciona todo bien y en la otra maquina no
funciona
2) Si tengo el Outlook corriendo en la máquina
3) Tengo el On Error... y "lanzo" el CreateObject pero tampoco funciona
(mantiene el error)
4) Las instancias las "mato" luego con el set ...= Nothing por lo que no
creo que haya problemas por este lado
5) No se perdió la referencia; figura perfecto (en ambas máquinas que lo
pruebo figura como que está instalado).

Te repito mi agradecimiento y cualquier cosa que puedas ayudar bienvenido
Gustavo

PD: Las versiones de Ofice son iguales (2003) pero en "mi" maquina (la que
funciona) tengo Win 2000 y en la otra es Win XP


"Héctor Miguel" wrote:

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.



Respuesta Responder a este mensaje
#3 Héctor Miguel
23/12/2005 - 21:34 | Informe spam
hola, Gustavo !

1) El tema es que en mi equipo funciona todo bien y en la otra maquina no funciona
2) Si tengo el Outlook corriendo en la maquina
3) Tengo el On Error... y "lanzo" el CreateObject pero tampoco funciona (mantiene el error)
4) Las instancias las "mato" luego con el set ...= Nothing por lo que no creo que haya problemas por este lado
5) No se perdio la referencia; figura perfecto (en ambas maquinas que lo pruebo figura como que esta instalado).
PD: Las versiones de Ofice son iguales (2003) pero en "mi" maquina (la que funciona) tengo Win 2000 y en la otra es Win XP



op1: es probable que en la maquina donde falla [win-xp], en el registro de windows, se hubiera 'perdido' la actulizacion de office -?-
revisa en la llave del registro: -> HKEY_CLASSES_ROOT\Outlook.Application\CurVer\
si el valor por omision 'dice' que debe direccionarse a: -> Outlook.Application.11

op2: intenta generando directamente la instancia a la aplicacion [p.e.]
Dim miOl as Outlook.Application
Set miOl = New Outlook.Application

op3: existe la posibilidad de que algun anti-virus estuviera 'bloqueando' el uso de los objetos 'Outlook.Application' -?-
en cuyo caso, es probabe que te funcione lanzando el outlook desde el 'shell' [p.e.]
Shell Application.Path & "\Outlook.exe"

si nada de lo anterior funciona... comentas [si hubiera] algun detalle adicional ?
saludos,
hector.
email Siga el debate Respuesta Responder a este mensaje
Ads by Google
Help Hacer una preguntaRespuesta Tengo una respuesta
Search Busqueda sugerida