Home | Contact Us | FAQ | Search & Site Map | Link to Us
Sign In | Join | Other 45 Sites in Network
Home
DiscussionsAccessExcelInfoPathOutlookPowerPointPublisherWord
DirectoryUser Groups
Related Topics
Outlook ExpressInternet ExplorerWindowsMS Server ProductsMore Topics ...

MS Office Forum / Excel / Programming / February 2006

Tip: Looking for answers? Try searching our database.

GetObject method not work after Call Shell Method

Thread view: 
Enable EMail Alerts  Start New Thread
Thread rating: 
ben - 20 Feb 2006 18:20 GMT
Trying to grab a reference to Outlook.
I first use the Getobject(,"Outlook.Application") method, this works if
outlook is open but if's it's not, I use Call Shell("dir string") to open
Outlook then use GetObject again to attempt to grab reference. This does not
work. Outlook will open, and be running fine, but VBA refuses to acknowledge
it being open, UNLESS I step through the code.
it's almost like it reads the State of office apps before it runs and will
not change that state unless, i step through, ie... It says outlook is open
and won't recheck, even if it is opened by code.
I can not use CreateObject for the last service pack microsoft released
killed that function for outlook.
any thoughts?

Signature

When you lose your mind, you free your life.
Ever Notice how we use '' for comments in our posts even if they aren''t
expected to go into the code?

Tom Ogilvy - 20 Feb 2006 18:51 GMT
Perhaps something like this will work:

set obj = Getobject(,"Outlook.Application")
if obj is Nothing then
 Call Shell("dir string")
 do
   Doevents
    set obj =  Getobject(,"Outlook.Application")
 Loop while obj is nothing
End if

Signature

Regards,
Tom Ogilvy

> Trying to grab a reference to Outlook.
> I first use the Getobject(,"Outlook.Application") method, this works if
[quoted text clipped - 8 lines]
> killed that function for outlook.
> any thoughts?
ben - 20 Feb 2006 19:06 GMT
didn't do quite what i expected but doevents definitely changed things up a
bit. I think I can work through it now.
Thanks again Tom

Signature

When you lose your mind, you free your life.
Ever Notice how we use '' for comments in our posts even if they aren''t
expected to go into the code?

> Perhaps something like this will work:
>
[quoted text clipped - 22 lines]
> > killed that function for outlook.
> > any thoughts?
keepITcool - 21 Feb 2006 10:26 GMT
no need to shell, and no need for doevents.
i think Tom's code is missing the CreateObject call.

Iso using a module level object variable I've wrapped it in a
STATIC function, so it can be easily called troughout your other code.

Option Explicit

Static Function olApp() As Object
Dim oApp As Object

If oApp Is Nothing Then
 On Error Resume Next
 Set oApp = GetObject(, "Outlook.Application")
 On Error GoTo 0
 If oApp Is Nothing Then
  Set oApp = CreateObject("Outlook.Application")
 End If
End If
Set olApp = oApp
End Function

Sub foo()
With olApp
 .GetNamespace("MAPI").GetDefaultFolder(6).Display
End With
End Sub

Signature

keepITcool

| www.XLsupport.com | keepITcool chello nl | amsterdam

> didn't do quite what i expected but doevents definitely changed
> things up a bit. I think I can work through it now.
> Thanks again Tom
Tom Ogilvy - 21 Feb 2006 14:07 GMT
Guess you missed where he said createobject for Outlook had been disabled by
Microsoft:

>I can not use CreateObject for the last service pack microsoft released
>killed that function for outlook.

Signature

Regards,
Tom Ogilvy

> no need to shell, and no need for doevents.
> i think Tom's code is missing the CreateObject call.
[quoted text clipped - 29 lines]
> > things up a bit. I think I can work through it now.
> > Thanks again Tom
Peter T - 21 Feb 2006 14:27 GMT
Ben might also look at the ErrorHandler in this, just in case even Shell
doesn't work

http://support.microsoft.com/?scid=kb;en-us;238610

Regards,
Peter T

> Guess you missed where he said createobject for Outlook had been disabled by
> Microsoft:
[quoted text clipped - 41 lines]
> > > things up a bit. I think I can work through it now.
> > > Thanks again Tom
ben - 21 Feb 2006 15:45 GMT
thanks peter, oddly enough the workaround they gave is exactly what i had to
end up doing.

Signature

When you lose your mind, you free your life.
Ever Notice how we use '' for comments in our posts even if they aren''t
expected to go into the code?

> Ben might also look at the ErrorHandler in this, just in case even Shell
> doesn't work
[quoted text clipped - 50 lines]
> > > > things up a bit. I think I can work through it now.
> > > > Thanks again Tom
keepITcool - 21 Feb 2006 14:36 GMT
Yep missed

Extensive googling didn't find any indication that Microsoft has
disabled this in a recent release or SP, and frankly it would surprise
me.

Posts by Sue Mosher (Outlook MVP) suggest it's more likely
an antivirus program blocking access to scripting.

Signature

keepITcool

| www.XLsupport.com | keepITcool chello nl | amsterdam

> Guess you missed where he said createobject for Outlook had been
> disabled by Microsoft:
>
> > I can not use CreateObject for the last service pack microsoft
> > released killed that function for outlook.
ben - 21 Feb 2006 15:43 GMT
actually what happens, i've studied this quite a bit, is that automation was
turned off for outlook as the Registry Key taht provides for outlook was
deleted, and Outlook no longer supports the /regserver switch, microsoft.com
KB provided that information for me. I looked up the automation registry key
on microsoft.com and it no longer exists for Outlook, though all other office
applications still work fine.
Signature

When you lose your mind, you free your life.
Ever Notice how we use '' for comments in our posts even if they aren''t
expected to go into the code?

> Yep missed
>
[quoted text clipped - 12 lines]
> > > I can not use CreateObject for the last service pack microsoft
> > > released killed that function for outlook.
 
Sign In
Join
My Latest Posts
My Monitored Threads
My Blog
My Photo Gallery
My Profile
My Homepage

Start New Thread
Enable EMail Alerts
Rate this Thread



©2008 Advenet LLC   Privacy Policy - Terms of Use
This website includes both content owned or controlled by Advenet as well as content owned or controlled by third parties.