如何制作 Ms-Access 插件?
How to make Ms-Access Add-ins?
我搜索了很多文档来制作 Microsoft Access 的加载项,Microsoft Docs Access 没有办法制作加载项,甚至 visual studio 用于 Office 开发人员加载项没有 Ms-Access 模板,
我可以为 Ms-Access 添加插件吗?如果可以,有人可以参考 link 如何做到这一点吗?
好吧,您可以不厌其烦地创建 VSTO 加载项,但如果您只需要调用 + 使用来自 Access 的一些 .net 代码,那么为什么要费心做这些工作呢?
只需在 .net 中创建一个 COM 对象,然后您就可以使用 + 从 Access VBA 轻松调用该代码。
因此,创建一个 .net class。
强制项目为 x86。 (假设访问 x32)
选中方框[] 为 COM 互操作注册。 (这仅在您的开发计算机上是必需的)。
您还需要在装配下勾选方框:
[x] 使程序集 COM 可见
但是,以上是默认设置。因此,这里实际上只需要一个复选框设置,您就可以完成所有这些工作。
现在,只需在 .net 中创建一个 class,这样说:
Imports System.Runtime.InteropServices
<ClassInterface(ClassInterfaceType.AutoDual)>
Public Class Class1
Private m_Company As String = ""
Public Function MyHello()
MsgBox("Hello world")
End Function
Public Property Company As String
Get
Return m_Company
End Get
Set(value As String)
m_Company = value
End Set
End Property
End Class
在 Access 中,您现在可以设置对 .net class 的引用(VBA 编辑器中的工具->引用)。
当然,一旦一切正常,您就可以像所有优秀的开发人员一样,在 VBA 中将代码更改为后期绑定。
通过上面的 class,然后在 VBA 中,您会看到即使是 intel-sense 也适用于 .net class 方法和属性。
因此在 VBA 中,请注意此屏幕截图:
请注意所有 subs/functions 如何显示为 VBA 中对象的方法。
因此,调用 + 使用您编写的 .net 代码相当容易,而且代码比尝试设置 VSTO 插件少得多。
其实上面我推荐的不仅是Access,还有word,Excel等
所以上面的内容比使用工具和设置来创建 Office 加载项的工作要少得多。
最终结果是在 .net 中使用非常简单的编码,这样的代码可以被 VBA + Access 使用。额外的好处是这样的代码也可以很容易地在 Excel、Word 甚至 windows VBS 脚本文件中使用。事实上,FoxPro,甚至可以说 sage 300 会计系统可以因此直接使用您提供的编程语言中的 .net 代码。所以任何支持 COM 对象 (ActiveX) 的语言或系统都可以因此使用上述简单的插件。
换句话说,您编写和创建的代码现在可以被所有办公室轻松使用,而您不必为每个办公室程序连接一个混乱的加载项。
所以,为了拯救世界贫困和饥饿的儿童,只需在 .net 中创建简单的 class,然后按照上述方式从 Office 中使用它。
现在唯一的问题是分发。您必须从 .net 提供一个 .dll,并在目标机器上执行 regasm 才能工作。但是,这是一个单行批处理文件,如果您使用任何类型的安装程序,此类安装程序无论如何都会通过 regasm 执行(注册).net 对象。如果您创建了一个真正的 office 插件,您仍然需要构建和设置一个安装程序——与注册 .net 对象的非常简单的 regasm 命令相比,该安装程序可能需要大量工作。
如果您真的想让这变得简单,您可以侧面加载 .net,甚至不必注册 .net 对象。
最后,上面的超级简单 class 示例在 Access + VBA 中工作得很好,并且工作和麻烦更少,然后它会带你获得一些 VSTO 添加-在办公室工作的模板。
我搜索了很多文档来制作 Microsoft Access 的加载项,Microsoft Docs Access 没有办法制作加载项,甚至 visual studio 用于 Office 开发人员加载项没有 Ms-Access 模板,
我可以为 Ms-Access 添加插件吗?如果可以,有人可以参考 link 如何做到这一点吗?
好吧,您可以不厌其烦地创建 VSTO 加载项,但如果您只需要调用 + 使用来自 Access 的一些 .net 代码,那么为什么要费心做这些工作呢?
只需在 .net 中创建一个 COM 对象,然后您就可以使用 + 从 Access VBA 轻松调用该代码。
因此,创建一个 .net class。
强制项目为 x86。 (假设访问 x32)
选中方框[] 为 COM 互操作注册。 (这仅在您的开发计算机上是必需的)。
您还需要在装配下勾选方框: [x] 使程序集 COM 可见
但是,以上是默认设置。因此,这里实际上只需要一个复选框设置,您就可以完成所有这些工作。
现在,只需在 .net 中创建一个 class,这样说:
Imports System.Runtime.InteropServices
<ClassInterface(ClassInterfaceType.AutoDual)>
Public Class Class1
Private m_Company As String = ""
Public Function MyHello()
MsgBox("Hello world")
End Function
Public Property Company As String
Get
Return m_Company
End Get
Set(value As String)
m_Company = value
End Set
End Property
End Class
在 Access 中,您现在可以设置对 .net class 的引用(VBA 编辑器中的工具->引用)。
当然,一旦一切正常,您就可以像所有优秀的开发人员一样,在 VBA 中将代码更改为后期绑定。
通过上面的 class,然后在 VBA 中,您会看到即使是 intel-sense 也适用于 .net class 方法和属性。
因此在 VBA 中,请注意此屏幕截图:
请注意所有 subs/functions 如何显示为 VBA 中对象的方法。
因此,调用 + 使用您编写的 .net 代码相当容易,而且代码比尝试设置 VSTO 插件少得多。
其实上面我推荐的不仅是Access,还有word,Excel等
所以上面的内容比使用工具和设置来创建 Office 加载项的工作要少得多。
最终结果是在 .net 中使用非常简单的编码,这样的代码可以被 VBA + Access 使用。额外的好处是这样的代码也可以很容易地在 Excel、Word 甚至 windows VBS 脚本文件中使用。事实上,FoxPro,甚至可以说 sage 300 会计系统可以因此直接使用您提供的编程语言中的 .net 代码。所以任何支持 COM 对象 (ActiveX) 的语言或系统都可以因此使用上述简单的插件。
换句话说,您编写和创建的代码现在可以被所有办公室轻松使用,而您不必为每个办公室程序连接一个混乱的加载项。
所以,为了拯救世界贫困和饥饿的儿童,只需在 .net 中创建简单的 class,然后按照上述方式从 Office 中使用它。
现在唯一的问题是分发。您必须从 .net 提供一个 .dll,并在目标机器上执行 regasm 才能工作。但是,这是一个单行批处理文件,如果您使用任何类型的安装程序,此类安装程序无论如何都会通过 regasm 执行(注册).net 对象。如果您创建了一个真正的 office 插件,您仍然需要构建和设置一个安装程序——与注册 .net 对象的非常简单的 regasm 命令相比,该安装程序可能需要大量工作。
如果您真的想让这变得简单,您可以侧面加载 .net,甚至不必注册 .net 对象。
最后,上面的超级简单 class 示例在 Access + VBA 中工作得很好,并且工作和麻烦更少,然后它会带你获得一些 VSTO 添加-在办公室工作的模板。