如何正确的在VBA/VB中引用C#/VB.NET开发的DLL
2017-09-18 15:19
1116 查看
原文地址:http://www.geeksengine.com/article/reference-dll.html感谢原作者的文章。
如果需要使用在C#或VB.Net创建一个DLL在Access VBA时,Excel VBA,或用于生产的机器上VB6应用程序,本文向您介绍如何注册,参考,并调用从VBA或VB编辑器中的DLL。
你已经正确安装并注册组件?
首先,你需要获取的C#/VB.NETDLL文件和.TLB类型库文件。在Access
、Excel、Word中的VBA引用C#或VB.Net创建的DLL文章中已经给出SimpleCalc.dll和SimpleCalc.tlb -这两个文件。
然后,复制C#/VB.NETDLL文件(SimpleCalc.dll)和.TLB类型库文件(SimpleCalc.tlb)到C:\ WINNT \ SYSTEM32
\或C:\ WINDOWS \ SYSTEM32 \目录下, 然后C#/VB.NETDLL注册到Windows注册表中。本文展示了如何正确使用RegAsm.exe工具注册C#/VB.NETDLL。
在您的VBA程序中添加引用
首先,创建一个新的 Access、Excel等文件,打开 Visual Basic 代码编辑器。在菜单中点工具-> 引用
点击引用窗口时,单击浏览按钮。
然后点击浏览(B),打开 C:\Windows\System32文件夹目录后选择 SimpleCalc.tlb打开。
点击打开完成后,SimpleCalc将会显示在你的参照引用列表中,你需要向下移动并在参照引用列表中找到并勾选中。然后单击确定关闭引用窗口。或者你可以选择进行上移
您可以在注册表中的截图记得上面有在Codebase项一个DLL路径值。VBA将使用此注册表信息来查找调用的DLL。在我们例子中,它是D:\ CSHARP \ SimpleCalc \ SimpleCalc \ BIN \发布\ SimpleCalc.dll
[b]从您的VBA或VB中调用C#/VB.NET写的DLL
[/b]
若要在VBA/V中调用[b]C#/VB.NET写的DLL里面的变量和方法,我们需要在VBA这个ibf添加一个按钮访问窗体,然后双击按钮添加事件。在Click事件中,我们创建调用C#/VB.Net写的DLL对象并调用它的方法做数字相加。[/b]
有两种方法可以来调用C#/VB.NET写的的DLL。见下文。
首先,我们在VBA中声明的C#/VB.NET写的DLL的对象。然后,在方法1,它使用New关键字来创建对象的新实例。方法2使用CreateObject函数来创建实例。无论哪种方式,我们都会得到3 + 6 = 9的结果。就这么简单,但它确实说明了注册,引用,基于 Visual Basic COM 应用程序调用C#/VB.Net
DLL整个过程。
祝您编码快乐!
其他文章系列:
(1)如何正确地创建Access或Excel中的DLL(或在任何Microsoft Office应用程序或VB6中使用)http://blog.csdn.net/kongwei521/article/details/77921436
(2)如何正确地将C#或VB.Net的DLL在开发机器或者生成环境机器中注册 http://blog.csdn.net/kongwei521/article/details/77929273
(3)如何正确地在Access VBA或Excel VBA内引用访问C#或VB.Net写的DLL http://blog.csdn.net/kongwei521/article/details/77929277
如果需要使用在C#或VB.Net创建一个DLL在Access VBA时,Excel VBA,或用于生产的机器上VB6应用程序,本文向您介绍如何注册,参考,并调用从VBA或VB编辑器中的DLL。
你已经正确安装并注册组件?
首先,你需要获取的C#/VB.NETDLL文件和.TLB类型库文件。在Access
、Excel、Word中的VBA引用C#或VB.Net创建的DLL文章中已经给出SimpleCalc.dll和SimpleCalc.tlb -这两个文件。
然后,复制C#/VB.NETDLL文件(SimpleCalc.dll)和.TLB类型库文件(SimpleCalc.tlb)到C:\ WINNT \ SYSTEM32
\或C:\ WINDOWS \ SYSTEM32 \目录下, 然后C#/VB.NETDLL注册到Windows注册表中。本文展示了如何正确使用RegAsm.exe工具注册C#/VB.NETDLL。
在您的VBA程序中添加引用
首先,创建一个新的 Access、Excel等文件,打开 Visual Basic 代码编辑器。在菜单中点工具-> 引用
点击引用窗口时,单击浏览按钮。
然后点击浏览(B),打开 C:\Windows\System32文件夹目录后选择 SimpleCalc.tlb打开。
点击打开完成后,SimpleCalc将会显示在你的参照引用列表中,你需要向下移动并在参照引用列表中找到并勾选中。然后单击确定关闭引用窗口。或者你可以选择进行上移
您可以在注册表中的截图记得上面有在Codebase项一个DLL路径值。VBA将使用此注册表信息来查找调用的DLL。在我们例子中,它是D:\ CSHARP \ SimpleCalc \ SimpleCalc \ BIN \发布\ SimpleCalc.dll
[b]从您的VBA或VB中调用C#/VB.NET写的DLL
[/b]
若要在VBA/V中调用[b]C#/VB.NET写的DLL里面的变量和方法,我们需要在VBA这个ibf添加一个按钮访问窗体,然后双击按钮添加事件。在Click事件中,我们创建调用C#/VB.Net写的DLL对象并调用它的方法做数字相加。[/b]
有两种方法可以来调用C#/VB.NET写的的DLL。见下文。
Private Sub Command0_Click() ''-------------------------------------------- '' Method 1: using New keyword Dim lngResult As Long Dim objCalc As SimpleCalc.Calc Set objCalc = New SimpleCalc.Calc objCalc.SetNumberOne (3) objCalc.SetNumberTwo (6) lngResult = objCalc.Add() ''-------------------------------------------- '' Method 2: This is another way to call the DLL by using CreateObject function. Dim lngResult2 As Long Dim objCalc2 As SimpleCalc.Calc Set objCalc2 = CreateObject("SimpleCalc.Calc") objCalc2.SetNumberOne (3) objCalc2.SetNumberTwo (6) lngResult2 = objCalc2.Add() ''--------------------------------------------- End Sub
首先,我们在VBA中声明的C#/VB.NET写的DLL的对象。然后,在方法1,它使用New关键字来创建对象的新实例。方法2使用CreateObject函数来创建实例。无论哪种方式,我们都会得到3 + 6 = 9的结果。就这么简单,但它确实说明了注册,引用,基于 Visual Basic COM 应用程序调用C#/VB.Net
DLL整个过程。
祝您编码快乐!
其他文章系列:
(1)如何正确地创建Access或Excel中的DLL(或在任何Microsoft Office应用程序或VB6中使用)http://blog.csdn.net/kongwei521/article/details/77921436
(2)如何正确地将C#或VB.Net的DLL在开发机器或者生成环境机器中注册 http://blog.csdn.net/kongwei521/article/details/77929273
(3)如何正确地在Access VBA或Excel VBA内引用访问C#或VB.Net写的DLL http://blog.csdn.net/kongwei521/article/details/77929277
相关文章推荐
- Access 、Excel、Word中的VBA引用C#或VB.Net创建的DLL
- 如何用RegAsm.exe在开发/生产环境中注册C#/VB.NET开发的DLL
- Visual Studio 2017中使用正则修改部分内容 如何使用ILAsm与ILDasm修改.Net exe(dll)文件 C#学习-图解教程(1):格式化数字字符串 小程序开发之图片转Base64(C#、.Net) jquery遍历table为每一个单元格取值及赋值 。net加密解密相关方法 .net关于坐标之间一些简单操作
- 开发人员在使用Aspose.Pdf for .NET时如何用C#和VB两种代码添加附件到PDF文档?
- VS2005默认的开发环境为VB.NET,要如何才能转为C#?
- 开发ASP.NET 2.0 Web应用程序时如何将App_Code文件夹中的共享代码配置生成多个Dll
- C#中如何使用VB.NET的My关键字
- VB.NET 如何调用VB.NET 写的DLL类库-实例
- 如何用C#调用C++开发的DLL呢?
- [VB.NET]在VB.NET中为什么引用了金山词霸的xdictgrb.dll文件还是不能实现鼠标取词呢?
- N-Tiers开发方式(如何使用VB.NET撰写COM+组件)
- [VB.NET]如何把一个c#程序转变为VB.NET
- [VB.NET]如何注册Interop.MSFlexGridLib.dll和AxInterop.MSFlexGridLib.dll以实用msflexgrid
- VB.NET 开发的WINDOWS 界面控件如何应用在网页中
- 针对C#、VB.NET、VB6的WINDOWS API引用
- Asp.net自定义服务器控件开发小技巧: 如何正确获得回传数据
- 引用---VB.NET与C#之间的转换
- VB.NET动态加载C#或VB.NET生成的DLL文件调用动画教程[黑白智慧写](动态调用DLL).txt
- 如何在asp中,使用vb来开发dll组件 (提供视频下载)
- VB.net与C#一些差别,看看VB是如何做到的。网上看到的一个好文章