Re: Mail Merge HTML Format Word 2002 XP SP3



From the modifications that you have made to the code, it seems that instead
of using mailmerge to create the personalised content of the email message,
you are using code to add the name to the document that becomes the body of
each message.

You seem to have missed the step

"Then execute to a new document the mail merge that you want to send out by
email with the attachments and with the result of execution of that mail
merge on the screen, run a macro containing the following code."

The command

..Send HTML

that you have in your code is not correct.


The following information from the Outlook Help file is probably what you
are looking for:

MailItem.BodyFormat Property
Returns or sets an OlBodyFormat constant indicating the format of the body
text. Read/write.

expression.BodyFormat

expression A variable that represents a MailItem object.

Remarks

The body text format determines the standard used to display the text of the
message. Microsoft Outlook provides three body text format options: Plain
Text, Rich Text (RTF), and HTML.
All text formatting will be lost when the BodyFormat property is switched
from RTF to HTML and vice-versa.
Example

The following Microsoft Visual Basic/Visual Basic for Applications (VBA)
example creates a new MailItem object and sets the BodyFormat property to
olFormatHTML. The body text of the e-mail item will now appear in HTML
format.

Sub CreateHTMLMail()
'Creates a new e-mail item and modifies its properties.

Dim olApp As Outlook.Application
Dim objMail As MailItem
Set olApp = Outlook.Application
'Create mail item
Set objMail = olApp.CreateItem(olMailItem)

With objMail
'Set body format to HTML
.BodyFormat = olFormatHTML
.HTMLBody = "<HTML><H2>The body of this message will appear in
HTML.</H2><BODY>Type the message text here. </BODY></HTML>"
.Display
End With

End Sub



--
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

<simon_forer@xxxxxxxxxxxxxxx> wrote in message
news:1163933094.685537.117660@xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx
Hi have slightly modified Doug Robbin's code to merge 160 emails all
with attachments (some client specific, some generic). Thanks for code
Doug!!

From reading other posts in here, I gather the emails I send out (using
Word 2002 XP SP3) should retain formatting...but they don't.

Is there any extra code to send as HTML or is this just the default?

Code I'm using is:

Sub emailmergewithattachments()

Dim Source As Document, Maillist As Document
Dim Datarange As Range
Dim Counter As Integer, i As Integer
Dim bStarted As Boolean
Dim oOutlookApp As Outlook.Application
Dim oItem As Outlook.MailItem
Dim mysubject As String, message As String, title As String

Set Source = ActiveDocument

' Check if Outlook is running. If it is not, start Outlook
On Error Resume Next
Set oOutlookApp = GetObject(, "Outlook.Application")
If Err <> 0 Then
Set oOutlookApp = CreateObject("Outlook.Application")
bStarted = True
End If

' Open the catalog mailmerge document
With Dialogs(wdDialogFileOpen)
.Show
End With
Set Maillist = ActiveDocument

' Show an input box asking the user for the subject to be inserted into
the email messages
message = "Enter the subject to be used for each email message." '
Set prompt.
title = " Email Subject Input" ' Set title.

' Display message, title
mysubject = InputBox(message, title)

' Iterate through the rows of the catalog mailmerge document,
extracting the information
' to be included in each email.

Counter = 1

While Counter <= Maillist.Tables(1).Rows.Count
Source.Sections.First.Range.Copy
Documents.Add
Selection.Paste

' Add Name to first line

Selection.GoTo What:=wdGoToSection, Which:=wdGoToFirst, Count:=1,
Name:=""
Selection.TypeText Text:=Maillist.Tables(1).Cell(Counter, 1).Range
Selection.TypeParagraph
Selection.TypeParagraph


Set oItem = oOutlookApp.CreateItem(olMailItem)
With oItem
.Subject = mysubject
.Body = ActiveDocument.Content
Set Datarange = Maillist.Tables(1).Cell(Counter, 2).Range
Datarange.End = Datarange.End - 1
.To = Datarange
For i = 3 To Maillist.Tables(1).Columns.Count
Set Datarange = Maillist.Tables(1).Cell(Counter, i).Range
Datarange.End = Datarange.End - 1
.Attachments.Add Trim(Datarange.Text), olByValue, 1
Next i
.Send HTML
End With
Set oItem = Nothing
ActiveDocument.Close wdDoNotSaveChanges
Counter = Counter + 1
Wend

' Close Outlook if it was started by this macro.
If bStarted Then
oOutlookApp.Quit
End If

'Clean up
Set oOutlookApp = Nothing
Source.Close wdDoNotSaveChanges
Maillist.Close wdDoNotSaveChanges

End Sub


Thanks
Simon



.



Relevant Pages

  • Re: Mail Merge HTML Format Word 2002 XP SP3
    ... I would suggest that you ask the question in an Outlook newsgroup. ... HTML format as you have no control over how the recipient reads them. ... Dim olApp As Outlook.Application ...
    (microsoft.public.word.mailmerge.fields)
  • Re: Mail Merge HTML Format Word 2002 XP SP3
    ... HTML format as you have no control over how the recipient reads them. ... 'Creates a new e-mail item and modifies its properties. ... Dim olApp As Outlook.Application ...
    (microsoft.public.word.mailmerge.fields)
  • Re: Mail Merge HTML Format Word 2002 XP SP3
    ... have now modified that code to send as HTML and if so how do I do this please. ... The body text format determines the standard used to display the text of the ... Microsoft Outlook provides three body text format options: ... Dim olApp As Outlook.Application ...
    (microsoft.public.word.mailmerge.fields)
  • Re: Mail Merge HTML Format Word 2002 XP SP3
    ... Thanks Doug - I appreciate what you are saying re the formatting - but I ... HTML format as you have no control over how the recipient reads them. ... Dim olApp As Outlook.Application ...
    (microsoft.public.word.mailmerge.fields)
  • Re: Form results chopped off in EMail
    ... It save the data to an HTML file but not send it in an HTML based email message. ... >>> truncated when I use any format OTHER THAN Formatted ...
    (microsoft.public.frontpage.client)