相关文章推荐
眼睛小的肉夹馍  ·  winfrom listBox ...·  2 周前    · 
爱运动的打火机  ·  使用 VBA ...·  2 周前    · 
性感的凉面  ·  VBA | ...·  2 周前    · 
大气的香槟  ·  mysql ...·  1 月前    · 
欢快的红茶  ·  陀螺研究院 I ...·  11 月前    · 
酷酷的芹菜  ·  Beyond ...·  12 月前    · 
大方的香烟  ·  logstash 字段重命名-掘金·  1 年前    · 

原文地址:http://www.geeksengine.com/article/reference-dll.html 感谢原作者的文章。

如果需要使用在C#或VB.Net创建一个DLL在Access VBA时,Excel VBA,或用于生产的机器上VB6应用程序,本文向您介绍如何注册,参考,并调用从VBA或VB编辑器中的DLL。

你已经正确安装并注册组件?

首先,你需要获取的 C#/VB.NET DLL文件和.TLB类型库文件。在 Access 、Excel、Word中的VBA引用C#或VB.Net创建的DLL 文章中已经给出SimpleCalc.dll和SimpleCalc.tlb -这两个文件。

然后,复制 C#/VB.NET DLL 文件(SimpleCalc.dll)和.TLB类型库文件(SimpleCalc.tlb)到C:\ WINNT \ SYSTEM32 \或C:\ WINDOWS \ SYSTEM32 \目录下, 然后 C#/VB.NET DLL 注册到Windows注册表中。 本文 展示了如何正确使用RegAsm.exe工具注册 C#/VB.NET DLL。

在您的VBA程序中添加引用

首先,创建一个新的 Access、Excel等文件,打开 Visual Basic 代码编辑器。 在菜单中点工具-> 引用

点击引用窗口时,单击浏览按钮。

然后点击浏览(B),打开 C:\Windows\System32文件夹目录后选择 SimpleCalc.tlb打开。

点击打开完成后,SimpleCalc将会显示在你的参照引用列表中,你需要向下移动并在参照引用列表中找到并勾选中。 然后单击确定关闭引用窗口。或者你可以选择进行上移

您可以在注册表中的截图记得上面有在Codebase项一个DLL路径值。 VBA将使用此注册表信息来查找调用的DLL。 在我们例子中,它是D:\ CSHARP \ SimpleCalc \ SimpleCalc \ BIN \发布\ SimpleCalc.dll

从您的VBA或VB中调用C#/VB.NET写的DLL

若要在VBA/V中调用 C#/VB.NET写的DLL里面的 变量和方法 ,我们需要在VBA这个ibf 添加一个按钮访问窗体,然后双击按钮添加事件。在 Click事件中,我们创建调用C#/VB.Net写的DLL对象并调用它的方法做数字相加。

有两种方法可以来调用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 原文地址:http://www.geeksengine.com/article/reference-dll.html感谢原作者的文章。如果需要使用在C#或VB.Net创建一个DLL在Access VBA时,Excel VBA,或用于生产的机器上VB6应用程序,本文向您介绍如何注册,参考,并调用从VBA或VB编辑器中的DLL。你已经正确安装并注册组件?首先,你需要获取的C#/VB
注:本文在翻译过程 ,图片会与原文章有些差异,主要是我为了更好的让大家看清楚做了一个图文诠释。 原文地址:http://www.geeksengine.com/article/create- dll .html 感谢原作者的文章。 我正在更新我在访问 VBA 创建和跨越,我需要一些封装的功能在 DLL 的场景来了一个应用程序。我以前用 VB (Visual Basic 5和6)多年前创建的 DLL 。最
使用 c# 语言在.net平台生成的 dll 是基于MSIL的二进制代码,通常情况下是无法被native的语言和程序 调用 的(例如 vb ,vc,delphi)。但是一般来说windows上native的程序都是可以直接使用com对象的。通过.net平台提供的一些工具,可以为其伪造一个com接口并注册到系统 。此时,可以在native的程序里,通过这个伪com接口来实现此.net的 dll 调用 vb 调用 C#
里面有两个方法    Encrypt(string pToEncrypt,string sKey) //加密     Decrypt(string pToDecrypt,string sKey) //解密     然后你这样写代码:     using Sy...
先感谢网友共享的资料:http://www.cnblogs.com/bob79/archive/2012/11/06/2757263.html                                         http://bbs.csdn.net/topics/90448381 以下对以上进行补充说明.+实践验证.     功能:在 VB 6.0(以下简称 VB )程序 调用 C# .n
vb s显示窗体(显示控件, 调用 标准 DLL 还要大家再去扩展) 用一个方法可以直接让PY显示任意控件, VB S也可以做界面 VB S就可以当软件用了,支持API 调用 (Findwindow),支持加载控件,他本身就支持 调用 对象creatobject,那 vb s不是万能的了嘛? 大家这方面有没有研究过?
目前做了个小程序,在html文件 调用 c# 类库生成的 dll 文件,途 遇到了很多问题: 先将类库添加强名,生成 dll 文件之后,就可生成tlb类型库。( dll 和tlb文件可移动到任何目录 ) 1.使用Windows命令窗口(若客户机没有vs2005,就无法使用Visual Stu
C# VB (Visual Basic)和 VBA (Visual Basic for Applications)都是基于.NET框架的编程语言。它们都可以用于 开发 各种类型的应用程序,包括Windows桌面应用程序、Web应用程序、移动应用程序等。 C# 是.NET框架的主要编程语言之一,它是一种现代、强类型的语言,广泛用于 开发 大型的企业级应用程序。 VB 是另一种.NET框架的编程语言,它是一种易学易用的语言,适合初学者和快速 开发 VBA 是一种特定于Microsoft Office应用程序的编程语言,它基于 VB 语言,并且可以用于自动化和扩展Office应用程序的功能。 这三种语言都可以通过.NET框架进行交互和集成,可以在同一个项目 混合使用它们来实现不同的功能。无论选择使用 C# VB 还是 VBA 开发 人员都可以利用.NET框架的强大功能和丰富的库来构建高效、可靠的应用程序。