当您与公司中的其他人或一组客户合作时,您可能希望为每个客户创建个性化文件。虽然最好使用邮件合并进行创建,但是如果您的个性化需求适中,则有一种更简单的方法。首先创建一个常规文本文件,其中包含要接收您文档的个人名称,每行一个名称。然后,宏会将名称填充到文档的标题中,并将文档保存在该人的名字下。因此,如果文本文件中包含十五个人,则最终将获得十五份文档副本,每人一份。每个标题都将使用个人姓名进行个性化设置。执行此任务的过程非常简单:打开文本文件,获取名称,将其放在标题中,然后保存文档。

获取另一个名称,然后重复该过程,直到文件中没有其他名称为止。下面的宏实现了这样的过程:

Sub SaveNameFiles()

Dim sName As String     Dim sFile As String

Open "c:/names.txt" For Input As #5

On Error Resume Next     Do While Not EOF(5)

' get the name         Line Input #5, sName         sFile = sName & ".doc"

sFile = "c:\mypath\" & sFile

ActiveWindow.ActivePane.View.SeekView = _           wdSeekCurrentPageHeader         Selection.WholeStory         Selection.Delete         Selection.TypeText Text:=sName

ActiveWindow.ActivePane.View.SeekView = _           wdSeekMainDocument         ActiveDocument.SaveAs FileName:=sFile     Loop

Close #5

ActiveWindow.ActivePane.View.SeekView = _       wdSeekCurrentPageHeader     Selection.WholeStory     Selection.Delete     ActiveWindow.ActivePane.View.SeekView = _       wdSeekMainDocument End Sub

宏的棘手部分是使用.SeekView属性来指定您要使用的文档中的哪个故事。如此处实现的,.SeekView属性被重复使用以在标题区域和主文档之间切换。还要注意,sFile变量指定了将在其中保存个性化文档的文件的名称。从文本文件中获取名称后,立即通过添加.doc文件扩展名和文件名开头的路径来构造sFile变量。 (您应该将路径更改为适合您的系统的路径。)实际的保存操作相对容易; .SaveAs方法与文件名一起使用。这是宏中最容易出错的代码行,因为从文件读取的名称之一可能包含不适合有效文件名的字符。在这种情况下,将生成错误,并且宏继续下一行。但是,该文档将不会以违规名称保存。循环(抓取名称和保存)完成后,将清除标题区域,并将.SeekView切换回主文档。

注意:

如果您想知道如何使用此页面(或_WordTips_网站上的任何其他页面)上描述的宏,我准备了一个包含有用信息的特殊页面。

_WordTips_是您进行经济有效的Microsoft Word培训的来源。

(Microsoft Word是世界上最流行的文字处理软件。)本技巧(195)适用于Microsoft Word 97、2000、2002和2003。您可以为Word(Word 2007)的功能区界面找到此技巧的版本。和更高版本)在这里: