添加VBA引用后保存模板

时间:2014-06-23 11:04:22

标签: vba ms-word

我有一些代码添加了使用Access所需的VBA引用。 (它检查用户是否已经包含它们。)

一切正常。我的问题是,当我接下来关闭时,我被提示保存Acronym工具模板(存储此代码的宏)。是否有可能以编程方式执行此操作,以便在添加引用并且用户没有看到它发生时立即执行此操作?

我使用的代码:

If Not isReferenceLoaded("Access") Then
        MsgBox ("Access Object library not found, the script will now attempt to find the library for you.")

        'Ensure access library is included so database actions can be done
        ID.AddFromFile "C:\Program Files (x86)\Microsoft Office\Office14\MSACC.OLB"

        MsgBox ("Access Object library added")

    End If

    If Not isReferenceLoaded("DAO") Then
        MsgBox ("DAO library not found, the script will now attempt to find the library for you.")

        'Ensure access library is included so database actions can be done
        ID.AddFromFile "C:\Program Files (x86)\Common Files\microsoft shared\OFFICE14\ACEDAO.DLL"

        MsgBox ("DAO library added")
    End If

查看是否加载引用的函数:

Private Function isReferenceLoaded(referenceName As String) As Boolean
    Dim xRef As Variant
    For Each xRef In ThisDocument.VBProject.References
        isReferenceLoaded = (xRef.Name = referenceName) Or isReferenceLoaded
    Next xRef
End Function

1 个答案:

答案 0 :(得分:0)

如果您不想使用更新的引用保存文档(我们将在下次文档打开时重新创建它们),添加到您的Document对象(据称名为ThisDocument)以下子程序:

Private Sub Document_Close()

        ThisDocument.Saved = True

End Sub

这将禁止仅对ThisDocument进行保存检查。如果您执行想要保存,请在开头添加Call ThisDocument.Save语句。但是,我会指望用户保存他们的更改...但这是一个策略问题,请按照您的意愿进行。

Nota Bene:添加功能后别忘了保存:如果忘记,你将失去改变; Word将忽略您的更改,因为它只是由函数指示执行此操作。 : - )