1. 程式人生 > >如何正確的在VBA/VB中引用C#/VB.NET開發的DLL

如何正確的在VBA/VB中引用C#/VB.NET開發的DLL

原文地址: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.NET

DLL檔案(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


從您的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

相關推薦

如何正確的在VBA/VB引用C#/VB.NET開發DLL

原文地址:http://www.geeksengine.com/article/reference-dll.html感謝原作者的文章。 如果需要使用在C#或VB.Net建立一個DLL在Access VBA時,Excel VBA,或用於生產的機器上VB6應用程式,本文向您介紹

QtC++專案釋出為dll的方法(超詳細步驟)

目錄 一般建立方法 匯出普通函式的方法&呼叫方法 匯出類及其成員函式的方法&呼叫方法 眾所周知,我們可以將C++專案中的類以及函式匯出,形成 .dll 檔案,以供其他程式使用,下面將說明Qt環境下的使用方法。 首先建立共享庫,步驟如下:

10個用於C#.NET開發的基本除錯工具

在除錯軟體時,工具非常重要。獲取正確的工具,然後再除錯時提取正確的資訊。根據獲取的正確的錯誤資訊,可以找到問題的根源所在。找到問題根源所在,你就能夠解決該錯誤了。 你將看到我認為最基本的解決在C# .NET 中錯誤問題的工具的列表。這些將幫助你找到任何難題的根本原因並加以解決。 除了程式碼中的常見問題外,一下

VB.net呼叫C\C++ 的DLL

只需要宣告一句話,比如呼叫mfc_Calc.dll中的calc函式 Public Declare Function calc Lib "mfc_Calc" (ByValaAs Integer, ByV

C#/VB.NET 在Word新增條碼、二維碼

本文介紹如何通過C# 和VB.NET程式碼實現在Word文件中新增條碼和二維碼。程式碼中將分為在Word正文段落中、頁首頁尾中等情況來新增。 使用工具:Free Spire.Office for .NET (免費版) 工具簡介:這是Spire所有.NET平臺下免費產品的集合包,包含Spire.Barcode.

C# / VB.NET 在PPT建立、編輯PPT SmartArt圖形

本文介紹通過C#和VB.NET程式程式碼來建立和編輯PPT文件中的SmartArt圖形。文中將分兩個操作示例來演示建立和編輯結果。 使用工具:Spire.Presentation for .NET hotfix 5.9.5 Dll檔案引用: 方式1:下載包。下載後,解壓,開啟Bin資料夾,根據自己用的.NET

C#/VB.NET對EXCEL圖片添加超鏈接

.net c# 超鏈接 在日常工作中,在編輯文檔時,為了方便自己或者Boss能夠實時查看到需要的網頁或者文檔時,需要對在Excel中輸入的相關文字進行超鏈接,那麽對於一些在Excel中插入的圖片我們該怎麽實現超鏈接呢,下面給大家分享一個方法:首先簡單了解一下一款叫Spire.XLS的組件,這個組件

SonarQubeCode Coverage Results Import (C#, VB.NET)

eid bsp appdata com nco post doc apps cover https://github.com/OpenCover/opencover 安裝路徑 C:\Users\dev\AppData\Local\Apps\OpenCover h

C# / VB.NET合並PDF指定頁

mes end 全部 sele pdf文檔 style 進一步 多個 pre 在前面的文章中,我們已經知道如何合並、拆分多個PDF文件,在這篇文章中的合並、拆分PDF文檔主要是以方便文檔管理的目的來操作文檔,在文檔查閱、管理及存儲上很方便實用。但是我們如果想要合並多個文檔中

C# /VB.NET 操作Word——插入、修改、刪除Word批註

C# .NET Word API Word批註 VB.NET 類庫 批註內容可以是對某段文字或內容的註釋,也可以是對文段中心思想的概括提要,或者是對文章內容的評判、疑問,以及在閱讀時給自己或他人起到提示作用。本篇文章中將介紹如何在C#/VB中操作Word批註,主要包含以下要點: 插入Wo

C#/VB.NET 創建PDF項目符號列表和多級編號列表

C# .NET PDF API PDF項目編號列表 免費類庫 使用項目符號和編號,可以讓文檔的層次結構更清晰、更有條理,也更容易突出重點。在編輯文檔的過程中,我個人也比較偏愛項目標號來標註文章重點信息。在之前的文章中,介紹了如何在Word中來創建項目標號和編號列表,在本篇文章中,將介紹創建PD

C#/VB.NET 如何添加、獲取、刪除PDF附件

C# .NET PDF API PDF附件 類庫 VB.NET 概述 附件,指隨同文件發出的有關文件或物品。在PDF文檔中,我們可以添加同類型的或其他類型的文檔作為附件內容,而PDF中附件也可以分為兩種存在形式,一種是附件以普通文件形式存在,另一種是以註釋的形式存在。在下面的示例中介紹了如

C# /VB.NET添加、讀取Word腳註/尾註

C# .NET 插入word腳註尾註 讀取word腳註尾註 免費類庫 前言 腳註和尾註是對文本的補充說明。腳註一般位於頁面的底部,可以作為文檔某處內容的註釋;尾註一般位於文檔的末尾,列出引文 的出處等。在本示例中將介紹如何來添加或刪除Word腳註。 工具使用 Free Spire. Doc

C#/VB.NET 獲取電腦屬性(硬盤ID、硬盤容量、Cpu序列號、MAC地址、系統類型)

mic class network pcm .cn bbb alt OS -h 原文:C#/VB.NET 獲取電腦屬性(硬盤ID、硬盤容量、Cpu序列號、MAC地址、系統類型)在開發過程中,經常需要獲取電腦的一些屬性,如獲取硬盤ID/CPU序列號/MAC地址作為來加密字符串

C# VB.NET 安裝解除安裝windows服務錯誤

一、背景 筆者自己使用vs2017編寫了一個數據採集的windows服務程式(.net4.5),同時又編寫了一個控制windows服務安裝解除安裝的winform程式(.net3.5)。   二、錯誤資訊 {System.BadImageFormatException: 未

16進制字符串轉數字(C/C++ VB/VB net C

false 最簡 字符串轉換 幽默 如何 ide 讓我 教程 很大的 這個問題看是很簡單,但是在不同語言中實現的方式卻千差萬別,如果不知道方法,還真是麻煩,我就是在C#中遇到該問題,讓我費了很大的周折,才在msdn查到。 一、16進制字符串轉數字 1、C/

DataTable繫結Table控制元件的資料(vb.net之經典應用)

Sub bind_table(ByVal tbl As DataTable)Dim cn AsNew SqlClient.SqlConnection(P_Con)        Dim cmd As SqlClient.SqlCommand = cn.CreateCommand        Dim adpt

C#/VB.net/VB 獲取系統時間

        系統執行中的一個度量主線就是時間,因此時間的獲取可以說是很普遍的。而東西多了,難免就混亂。今天總結一下vb/vb.net/C#獲取系統時間的語法格式,方便日後查閱。 vb6.0

在asp.net怎麼用VB連線SQL SERVER2005資料庫

第一步: Private Function ExecuteSQL(ByVal strSQL As String, ByRef errMsg As String) As DataSet Dim cnn As SqlClient.SqlConn

asp.net(C#.VB)array、arraylist和list的區別(轉自CSDN)

1.陣列、arraylist和list的區別(請詳細解釋) 2.泛型是怎麼回事?===============我簡單的說一下: 陣列:固定長度的一段記憶體。 ArrayList:可以理解為可以動態增加記憶體的陣列,是一種連結串列。 list是一種範型連結串列,解決了Array