Using VBA to send Word document as body of message works in 2007, but not in 2003

  • Thread starter Doug Robbins - Word MVP
  • Start date
D

Doug Robbins - Word MVP

Based on Sue Mosher's code at
http://www.outlookcode.com/codedetail.aspx?id=1333, the following code,
which is located inside a With ActiveDocument - End With construction, works
fine in Word 2007:

Set objDoc = .MailEnvelope.Item
With objDoc
.To = strEmail
.Subject = strSubject
.Save
strID = .EntryID
End With
Set objDoc = Nothing
Set objDoc =
oOutlookApp.Session.GetItemFromID(strID)
With objDoc
.Send
End With
Set objDoc = Nothing

ObjDoc is declared as an Object and strID as a String and earlier in the
code there is the following:

On Error Resume Next
Set oOutlookApp = GetObject(, "Outlook.Application")
If Err <> 0 Then
Set oOutlookApp = CreateObject("Outlook.Application")
bStarted = True
End If

In Word 2003 however, it does not work and testing for strID using MsgBox
strID after it is set to .EntryID, I just get an empty message box so that
it appears that .EntryID is not being assigned.

Any clues on how to overcome this?
 
D

Doug Robbins - Word MVP

As a followup, if I remove the On Error Resume Next, the following error
message is displayed:

430 Class does not support Automation or does not support expected interface

Any clues on how to overcome this?
 
D

Doug Robbins - Word MVP

Hi Sue,

Yes, it is being run from Word. It is in the Word 2003 version of the
add-in that can be downloaded from:

http://www.gmayor.com/ManyToOne.htm

However, in the 2003 version that is available there, the "Merge to Email
Message" facility has been disabled.

The error is being caused by the

Set objDoc = .MailEnvelope.Item

command. Note that line of code is inside a With ActiveDocument...End With
construction, and when writing the code, the intellisense provides
MailEnvelope.Item as a suggestion.
 
D

Doug Robbins - Word MVP

Hi Sue,

If I insert

MsgBox ActiveDocument.MailEnvelope

into the code, or just create a macro in the normal.dot template that
contains that code, in both cases, I get the Run-Time error '430' message

Class does not support Automation or does not support expected interface.

The same error message appears if I try and run the following code from the
VBA Help File:

ActiveDocument.MailEnvelope.Introduction = _
"Please review this document and let me know " & _
"what you think. I need your input by Friday." & _
" Thanks."

I have tried deleting Registry Keys, and re-registering Word, but that did
not make any difference

I have also tried running the code from
http://www.outlookcode.com/codedetail.aspx?id=1333 from Outlook, which did
not work and if I comment out the On Error Resume Next, I get the same error
message.

BTW, this was a fresh install of Office 2003 on a machine that previously
had 2010 Beta on it, but that was uninstalled before 2003 was installed and
the Registry Keys for Office 14.0 have been deleted.

--
Regards,

Doug Robbins - Word MVP
 
D

Doug Robbins - Word MVP

Hi Sue,

While ActiveDocument.MailEnvelope also errors out in Word 2007, in that
version, ActiveDocument.MailEnvelope.Parent returns the name of the active
document, but it gives the 430 error message in Word 2003.

Also, I have now tried that on machines that have never had anything later
than Office 2003 installed on them with the same result.

--
Hope this helps,

Doug Robbins - Word MVP

Please reply only to the newsgroups unless you wish to obtain my services on
a paid professional basis.
 
S

Sue Mosher [MVP]

My guess is that the problem has to do with the 2010 installation. I have no
idea how to fix that. You might want to ask on the beta forum how to do a
complete uninstallation.
--
Sue Mosher, Outlook MVP
Author of Microsoft Outlook 2007 Programming:
Jumpstart for Power Users and Administrators
http://www.outlookcode.com/article.aspx?id=54
 
S

Sue Mosher [MVP]

On the pure Office 2003 machines, did you install Outlook and Word from the
same SKU? If not, I think the Office Envelope functionality (among other
features) won't work.

Also, I don't know what you mean about this code being related to the
add-in. If add-ins are present, maybe disabling them would reveal something
useful.
--
Sue Mosher, Outlook MVP
Author of Microsoft Outlook 2007 Programming:
Jumpstart for Power Users and Administrators
http://www.outlookcode.com/article.aspx?id=54
 
D

Doug Robbins - Word MVP

Thanks, Sue.

I have now determined that it must be something to do with the particular
installation of Office.

--
Hope this helps.

Please reply to the newsgroup unless you wish to avail yourself of my
services on a paid consulting basis.

Doug Robbins - Word MVP, originally posted via msnews.microsoft.com
 

Ask a Question

Want to reply to this thread or ask your own question?

You'll need to choose a username for the site, which only take a couple of moments. After that, you can post your question and our members will help you out.

Ask a Question

Top