>WITH This.oWord > *** Now replace all the bookmarks in the template. Since we have set this up to have > *** the template names match the bookmark names, just loop though the bookmarks collection > *** and replace with the variable of the same name. > FOR EACH loBookMark IN .ActiveDocument.Bookmarks > lcVarName = loBookMark.Name > loBookMark.Range.Text = EVALUATE( ALLTRIM(lcVarName) ) > ENDFOR >ENDWITH >I second this approach. Users can compose their own letters to their liking. One thing with MSWord, it wont allow you to specify the same bookmark in more than one place. For example, if there's a rqmt to reference [LASTNAME] more than once in a DOC, you need to use a bookmark naming/numbering scheme of sorts for repeated bookmarks. [LASTNAME1] [LASTNAME2]