一劳永逸+批量修改word文件作者名

一劳永逸+批量修改word文件作者名

一个Word文档里面其实有两个信息需要修改:“作者名称” 和 “上次保存的作者名称”。前者通过直接修改文档属性即可;后者修改文档属性不能达到目的,只能先把Word应用程序设置里面的用户名称修改之后再保存一次文档才行。这段代码都自动处理了两种情况,并在处理完之后恢复Word应用程序设置中的用户姓名为原来的值。

一劳永逸的办法(修改默认作者名,但是已创建的文档不能修改),工具-选项-用户信息选项页,把姓名该成你自己想要显示的就行了,以后创建的word均为此作者名。

批量修改已存在的文档作者名的方法:在Word里面随便新建一个文档,键入Alt+F11打开VBA编辑器

执行“插入-模块”,并在下面的代码编辑区中粘贴如下代码并做修改:

Option ExplicitConst g_strRootPath = "c:\Temp\docs\Word\ToChangeAuthors\"(修改此处为你的文件存放目录)Const g_strAuthorName = "作者姓名"(修改此处为你要的作者名)Sub ChangeAllDocAuthors() On Error Resume Next Dim strPreviousUserName As String Dim fso, oFolder strPreviousUserName = Application.UserName Application.UserName = g_strAuthorName Set fso = CreateObject("Scripting.FileSystemObject") Set oFolder = fso.GetFolder(g_strRootPath) ChangeAllDocAuthorsUnderFolder fso, oFolder Application.UserName = strPreviousUserName MsgBox "完成!"End SubSub ChangeAllDocAuthorsUnderFolder(fso, oFolder) Dim oSubFolder, oFile Dim strTitle As String, strFileName As String For Each oSubFolder In oFolder.SubFolders ChangeAllDocAuthorsUnderFolder fso, oSubFolder Next For Each oFile In oFolder.Files Documents.Open FileName:=oFile.Path ActiveDocument.BuiltInDocumentProperties("Author") = g_strAuthorName ActiveDocument.BuiltInDocumentProperties("Last Author") = g_strAuthorName ActiveDocument.Close True NextEnd Sub