问:
嗨,Scripting Guy!我有一系列 Word 文件。我想打开这些文件中的每一个并将它们另存为纯文本文件。有没有一种通过使用脚本实现此目的的方法呢?
-- CG
答:
您好,CG。是的,使用一个脚本,您很容易实现此目的。事实上,除了极少例外情况之外,您在 Microsoft Office 程序中可以做到的事情基本上都可以使用一个脚本来完成。在 Word 中,您可以使用“文件”?C“另存为”将 Word 文档另存为文本文件。您也可以使用一个脚本做同样的事情。实际上,您可以使用以下脚本实现此目的:
Const wdFormatText = 2
Set objWord = CreateObject("Word.Application")
Set objDoc = objWord.Documents.Open("c:\scripts\mylog.doc")
objDoc.SaveAs "c:\scripts\mylog.txt", wdFormatText
objWord.Quit
我们先创建一个名为“wdFormatText”的常量,然后将值 2 分配给它;此常量将用于告诉 Word 我们希望新文件保存为一个文本文件。然后我们创建一个 Microsoft Word 实例,使用“打开”方法打开文件 C:\Scripts\MyLog.doc。文档打开之后,我们只需要一行代码就可将此 Word 文档另存为文本文件:
objDoc.SaveAs "c:\scripts\mylog.txt", wdFormatText
As you can see, we call the SaveAs method, and we pass it two parameters: 1) C:\Scripts\MyLog.txt, which is the path for our new text file; and, 2) wdFormatText, which tells Word to save the file as plain text.这样就可以了。然后我们使用“Quit”方法关闭 Word 实例。
两个重要注意事项。第一,您在屏幕上看不到任何正在发生的事情,因为,默认情况下,无论何时您从一个脚本中调用 Word,它都将运行在一个不可见窗口中。如果您希望看到它在屏幕上弹出,保存文件,然后消失,请使用以下代码:
Const wdFormatText = 2
Set objWord = CreateObject("Word.Application")
objWord.Visible = TRUE
Set objDoc = objWord.Documents.Open("c:\scripts\mylog.doc")
objDoc.SaveAs "c:\scripts\mylog.txt", wdFormatText
objWord.Quit
唯一的不同之处在于:我们将“Visible”属性设置为 TRUE。
第二,您可以将 Word 文档另存为纯文本以外的格式。例如,使用常量 wdFormatHTML(值 = 8)将 Word 文档另存为 HTML 文件;使用常量 wdFormatXML(值 = 11)将 Word 文档另存为 XML 文件。