View Single Post
  #6   Report Post  
Posted to microsoft.public.word.mailmerge.fields
Charles Kenyon
 
Posts: n/a
Default Macro execution using MailMerge

Word's recorded macros are terrible coding. A number of macros that you
record will not run on the same machine on which they were recorded. That is
a fact of life. In addition, they often contain extraneous and dangerous
material.
--
Charles Kenyon

Word New User FAQ & Web Directory: http://addbalance.com/word

Intermediate User's Guide to Microsoft Word (supplemented version of
Microsoft's Legal Users' Guide) http://addbalance.com/usersguide

See also the MVP FAQ: http://word.mvps.org/FAQs/ which is awesome!

My criminal defense site: http://addbalance.com
--------- --------- --------- --------- --------- ---------
This message is posted to a newsgroup. Please post replies
and questions to the newsgroup so that others can learn
from my ignorance and your wisdom.


"nelsonj" wrote in message
...
Doug: As you know, macros are used by clerical types to do repeditive
tasks
quickly and this macro is used several times a day to generate mailing
lables
for our Permitting Department. The code is generated by the "macro
recording" part of WORD, so what you see is what is geerated by WORD. The
routine fails with a 509
runtime error on the line marked with a ++.

This macro is a re-generation of a working macro in Word 2000 that does
not
have this problem. I have tried to enhance the Resources list for VBA in
Word
2003 and I have attempted to record this macro using both the Mail Merge
Helper panels and the Mail Merge Help steps, and both come up with the
same
error. Here is the code generated by the WORD macro:


Sub APO2()
'
' APO2 Macro
' Macro recorded 06/12/2006 by JNelson
'
ActiveDocument.MailMerge.MainDocumentType = wdMailingLabels
ActiveDocument.MailMerge.OpenDataSource Name:="C:\list.doc", _
ConfirmConversions:=False, ReadOnly:=False, LinkToSource:=True, _
AddToRecentFiles:=False, PasswordDocument:="",
PasswordTemplate:="", _
WritePasswordDocument:="", WritePasswordTemplate:="",
Revert:=False, _
Format:=wdOpenFormatAuto, Connection:="", SQLStatement:="",
SQLStatement1 _
:="", SubType:=wdMergeSubTypeOther
WordBasic.MailMergeOpenHeaderSource Name:="C:\listhdr.doc", _
ConfirmConversions:=0, ReadOnly:=0, LinkToSource:=1, AddToMru:=0, _
PasswordDoc:="", PasswordDot:="", Revert:=0, WritePasswordDoc:="",
_
WritePasswordDot:="", Connection:="", SQLStatement:="",
SQLStatement1:="" _
, Format:=0, Visible:=1, OpenExclusive:=0, OpenAndRepair:=0,
SubType:=0, _
DocumentDirection:=0, NoEncodingDialog:=1, XMLTransform:=""
ActiveDocument.MailMerge.DataSource.QueryString = _
"SELECT * FROM C:\list.doc" & ""
ActiveDocument.Fields.Add Range:=Selection.Range,
Type:=wdFieldMergeField _
, Text:="""FirstName"""
Selection.TypeText Text:=" "
ActiveDocument.Fields.Add Range:=Selection.Range,
Type:=wdFieldMergeField _
, Text:="""LastName"""
Selection.TypeParagraph
ActiveDocument.Fields.Add Range:=Selection.Range,
Type:=wdFieldMergeField _
, Text:="""Address1"""
Selection.TypeParagraph
ActiveDocument.Fields.Add Range:=Selection.Range,
Type:=wdFieldMergeField _
, Text:="""City"""
ActiveDocument.Fields.Add Range:=Selection.Range,
Type:=wdFieldMergeField _
, Text:="""State"""
Selection.TypeText Text:=" "
ActiveDocument.Fields.Add Range:=Selection.Range,
Type:=wdFieldMergeField _
, Text:="""PostalCode"""
++ WordBasic.MailMergePropagateLabel
ActiveDocument.MailMerge.ViewMailMergeFieldCodes = wdToggle
ChangeFileOpenDirectory "C:\"
ActiveDocument.SaveAs FileName:="mergelist.doc", FileFormat:= _
wdFormatDocument, LockComments:=False, Password:="",
AddToRecentFiles:= _
True, WritePassword:="", ReadOnlyRecommended:=False,
EmbedTrueTypeFonts:= _
False, SaveNativePictureFormat:=False, SaveFormsData:=False, _
SaveAsAOCELetter:=False
End Sub



"Doug Robbins - Word MVP" wrote:

I can't really imagine the circumstance under which I would bother with a
macro to set up a mailmerge main document, but none the less, without
seeing
you code it is somewhat hard to tell what is causing the problem, though
the
most likely thing is that the mailmerge main document is not, or is not
being recognised as, a label type mailmerge main document.

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

"nelsonj" wrote in message
...
I have converted a Word 2000 macro over to Word 2003 and recorded a Word
macro to perform a mail merge from a six(6) column table contained in a
Word
document. Recording and saving the mail merge steps goes ok ( I used
the
'Address Block' format for my lables.)
However, when I execute the macro, the process abends with a MS Visual
Basic
run-time error " '509' This command is not available". Clicking on
debug
shows me that the macro abended on the line that is calling the

WordBasic.MailMergePropagateLabel routine.

I have looked everywhere for a solution to this abend. I have gone back
into
my install of Office 2003 and added in any and all "pieces / parts" of
Word
and Office that might have anything to do with Visual Basic, but the
macro
always fails. I have a feeling I am missing something in the Office
install,
but can not determine what else could be causing this error. Any
assistance
/ suggestions are appreciated. J Nelson.