如何正確的在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
在您的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新增一個按鈕訪問窗體,然後雙擊按鈕新增事件。在
有兩種方法可以來呼叫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應用程式,本文向您介紹
Qt中純C++專案釋出為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