2013-03-17 68 views
0

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

回答

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()或自动关闭()事件。我会让你决定哪一个是合适的。