我有一个动态插入 VBA 代码的应用程序,以帮助构建带有适当书签的 MS Word 文档。VBA 代码不需要与文档本身一起保存。
保存文档时,会弹出以下警告(不幸的是我还不能发布图像),这会使应用程序的最终用户感到困惑。有没有办法在 DocumentBeforeSave 事件中禁用它?
**
以下内容不能保存在无宏文档中: VBA 项目 要保存具有这些功能的文件,请单击否返回“另存为”对话框,然后在“文件类型”下拉列表中选择启用宏的文件类型。继续另存为无宏文档?按钮:[是][否][帮助]
**
一个想法是将文档的 SaveFormat 更改为旧格式,以防止弹出此警告。但我不确定此更改是否会影响文档的行为方式,以及是否可以在 DocumentBeforeSave 事件中修改此属性(该属性是 READONLY 属性)。
在此先感谢您对此主题的任何帮助。
以下代码将打开一个单词(假设存在 c:\work\test.docx,它可以只是一个空白单词 doc)。如果您点击 word doc 上的 Save 按钮,则会显示警告消息。顺便说一句,我正在使用 Office 2010。
<TestMethod()>
Public Sub testWord()
Dim wApp As New Word.Application()
Dim myDoc As Word.Document
Dim DataCodeModule As Object = Nothing
myDoc = wApp.Documents.Open("C:\Work\test.docx")
DataCodeModule = myDoc.VBProject.VBComponents(0).CodeModule
With DataCodeModule
.InsertLines(1, "Option Explicit")
.InsertLines(2, "Sub TestCode()")
.InsertLines(3, "Selection.InsertAfter ""test""")
.InsertLines(4, "End Sub")
End With
wApp.Visible = True
myDoc.Activate()
End Sub
一旦 DocumentBeforeSave 被连接,我希望下面的代码会禁用警告。可能需要在打开文档后立即设置 DisplayAlerts?
Public Sub App_DocumentBeforeSave(ByVal doc As Object, ByRef saveAsUI As Boolean, ByRef cancel As Boolean) Handles _officeHelper.DocumentBeforeSave
Dim WordApp As Object = this.WordApp()
'WordApp.DisplayAlerts = False
WordApp.DisplayAlerts = 0
End Sub