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 / Word / Mailmerge and Fax / October 2007

Tip: Looking for answers? Try searching our database.

Email Mail Merge with Hyperlink as MrgField

Thread view: 
Enable EMail Alerts  Start New Thread
Thread rating: 
Finz2drght - 02 Oct 2007 15:13 GMT
I created a document (Word 2002) to be used as an email to a group of people.
Each person should receive a different hyperlink.

I tried creating a new document and using the instructions found under MVP:
Ctrl F9, type Hyperlink and space then enter the mergefield, etc.  The merge
keeps the same hyperlink for all people instead of using the individual links
associated with the record in my Excel document.  

I can send the email as text and the link works, but I lose formatting.  Is
there a way to send as HTML, retaining my formatting and allow each
individual to receive their associated hyperlink?

Will this feature improve with the 2007 version?  Thanks in advance for your
assistance!
Peter Jamieson - 02 Oct 2007 16:53 GMT
To specify the display text, things are complicated because there is no
"switch"
in the HYPERLINK field that lets you specify the display text.

However, it may be worth checking to see whether the link text (target URL)
is actually different for each recipient, even though the hyperlink looks
the same.

Otherwise...

You may be able to do the merge using VBA and "Word Events", e.g. as follows
(I haven't tested this recently). Nasty, but even so I suspect this is the
easiest way to do it in Word.

1. Create a new document, connect it to your data source, and insert one
merge field and a bookmark named "mybm"

2. Open up the VBA Editor and
a. insert a class module.
b. name it EventClassModule in the properties box
c. Copy the following code into the module:

Public WithEvents App As Word.Application

Private Sub App_MailMergeBeforeRecordMerge(BYVal Doc As Document, Cancel As
Boolean)
Dim dt as String
Dim lt as String
Dim h as Hyperlink
Dim r as Range

' set the range variable to our placeholder bookmark
Set r = Doc.Bookmarks("mybm").Range

' delete any existing text (this is needed for records after record 1)
r.Text = ""

' construct the link text that you want. I'm assuming your data source
' has a field called mylink for the link
lt = Doc.MailMerge.DataSource.DataFields("mylink")
' set up the display text that you want. If it should be the same as the
link text, do that:
dt = lt

' insert the hyperlink you want
Set h = Doc.Hyperlinks.Add(Anchor:=r, Address=lt, TextToDisplay:=dt)

' Set mybm to "cover" the inserted link so it is easy to delete the old
hyperlink

Doc.Bookmarks.Add Name:="mybm", Range:=h.Range

Set r = Nothing
Set h = Nothing

End Sub

3. Insert an ordinary module (the name does not matter) and insert the
following code:

Dim x As New EventClassModule

Sub autoopen()
Set x.App = Word.Application
End Sub

4. Save and close the document. Open it to trigger the autoopen, then
perform a test merge.

NB, if you start changing the code you may find that you need to re-run your
autoopen code again, and/or save/close/open the document.

Signature

Peter Jamieson
http://tips.pjmsn.me.uk

>I created a document (Word 2002) to be used as an email to a group of
>people.
[quoted text clipped - 16 lines]
> your
> assistance!
 
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.