自动化已打开的Word文档 - >另存为

时间:2013-03-17 01:37:13

标签: c# filemaker word-automation

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

1 个答案:

答案 0 :(得分: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文档时,你需要一个类似的宏来开始,以确保它是一个SAVE AS。

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

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()事件中。我会让你决定哪一个合适。