0

是否可以对已在 Word 中打开的文档自动执行另存为过程?我在 FileMaker 数据库和 Word 文档之间使用 OLE 链接。文档被触发从 FileMaker 中打开,但现在我需要编写一个小片段 (C#) 来自动执行另存为过程并关闭 Word。这是可能的还是必须由自动化脚本打开自动化正在使用的文档?

4

1 回答 1

0

是的,但这取决于您要达到的目标。

我对 Word 的 normal.dot 文件做了类似的事情,在每个打开的 Word 文档(学生下载工作文件)上自动运行一个宏,这样他们就“被迫”将他们的工作保存到他们正确的工作文件夹中。否则,默认值始终是 Window 的临时文件夹。正如您所了解的,如果您不另存为并处理文档,您会将所有工作保存在文件的临时副本上,当您注销时,整个文件都会丢失!

如果这与您所追求的相似,请执行以下操作:

[1] 打开 Word 作为一个空文档(即:打开 Word 应用程序而没有实际的 Word 文件) [2] 按 ALT-F11 打开 Visual Basic for App (VBA) [3] 展开 NORMAL 文件夹(它可能叫什么否则),但我们需要将此宏保存到默认的 DOT 文件中。[4] 双击“ThisDocument” [5] 应该会打开一个文档宏窗口 [6] 粘贴以下代码:

Private Sub Document_Open()
  MsgBox "Make sure you do a FILE -> SAVE-AS before starting your work!", vbCritical + vbOKOnly, "WARNING!"
End Sub

[7] 关闭 Word 并确保更新 NORMAL.DOT 文件

下次您打开 Word 文档时,系统会自动要求您确保在继续之前保存您的工作。

当然,在您的情况下,当您退出 word 文档时,您需要一个类似的宏来启动,以确保它是另存为。

在那种情况下,使用这样的东西......

ActiveDocument.SAVEAS FileName:= _
    "<YOUR NETWORK OR FOLDER>myfile.docx", FileFormat:= _
    wdFormatXMLDocument, LockComments:=False, Password:="", AddToRecentFiles _
    :=True, WritePassword:="", ReadOnlyRecommended:=False, EmbedTrueTypeFonts _
    :=False, SaveNativePictureFormat:=False, SaveFormsData:=False, _
    SaveAsAOCELetter:=False

并将其放在 Document_Close() 或 AutoClose() 事件中。我会让你决定哪一个是合适的。

于 2013-07-29T05:09:59.313 回答