VBA如何在模組中引用另模組的函式

時間 2021-07-08 20:34:07

1樓:職場戴老師

1. 什麼是dll檔案

dll是dynamic link library 的縮寫形式,dll是一個包含可由多個程式同時使用的**和資料的庫。

dll不是可執行檔案。動態連結提供了一種方法,使程序可以呼叫不屬於其可執行**的函式。函式的可執行**位於一個 dll 中,該 dll 包含一個或多個已被編譯、連結並與使用它們的程序分開儲存的函式。

dll 還有助於共享資料和資源。多個應用程式可同時訪問記憶體中單個dll 副本的內容。dll 是一個包含可由多個程式同時使用的**和資料的庫。

2. dll在vba中有什麼作用?

① 把核心**封裝在dll裡,使用者無法檢視到dll檔案中的**,有利於保護自已的**。

② 可以放在dll檔案中被大家共享。

3. 怎麼把vba**封裝到dll檔案中呢?

常用的方法是使用vb6.0進行封裝,所以大家要想學習本集封裝,需要先安裝vb6.0程式。具本的封裝步驟詳見下面的dll封裝示例模組。

4. 怎麼在vba中呼叫這些**呢?

封裝的**是以類的形式存在,所以呼叫前需要先載入dll檔案,然後在模組中象呼叫類模組一樣呼叫dll中的函式,詳見下面的"dll**的呼叫"模組內容。

二、dll封裝

在模組中編寫試調正確

例:寫一個求矩形面積的vba自定義函式。

function 面積(長 as double, 寬 as double)

面積 = 長 * 寬

end function

2. 開啟vb程式,在"新建工程'視窗中點"activex dll"圖示。

2樓:匿名使用者

我試了,在同一個檔案中,只要另一個模組中的函式前不要加 private 之類的限制詞,就可以直接呼叫,或者前面加模組名再加函式名來呼叫。比如(我用的call方式呼叫,其他方式應該也行的吧):

call 模組2.dealmerge(activecell)或者call dealmerge(activecell)模組2中的過程是這樣的:

function dealmerge(target as range)

dim tmprange as rangeset tmprange = cells(target.row(), 1).mergearea

'......

end function

goodluck!

3樓:綠水青山

sub bbb()

msgbox "aaa "

end sub

sub aaa()

call bbb

end sub

excel中vba如何在模組中自定義函式,定義好了之後如何在窗體中呼叫?謝謝

4樓:匿名使用者

在模組裡定義:

function aa(a)

aa=a

end function

窗體裡呼叫:

x=aa(1)

msgbox x

5樓:匿名使用者

vb函式分

baisub(無返回值)以及dufunction(有返回值)簡單範例

public function ss() as stringss = "我是

zhi"

end function

注意,想定dao義的函式能夠在窗體或別版的權模組呼叫,該函式必須是public的,也就是第一個關鍵字必須為public

function的呼叫很簡單,直接寫函式名和引數如 msgbox ss

而sub的呼叫直接call,如:

public sub ss()

ss = "我是"

end sub

呼叫call ss

另外一點需要注意,呼叫模組定義的函式,直接寫函式名。但如果呼叫窗體的函式,就得把窗體加上。比如,我要呼叫sheet1下的bb函式,則該寫成 call sheet1.bb

如何在stata中新增meta模組

黑我大老溼 樓上的方法我剛剛試過,管用的,我補充幾點體會 如果 spinst mais 這一步顯示有檔案安裝失敗的話,嘗試重新執行一遍。ssc install metadialog.pkg 這一步只有上述步驟全部完成沒有錯誤才會執行。若無法執行,則需要再來一遍 spinst mais 在stata選...

IPM模組在變頻空調中的作用?IPM模組與IGBT是如何配合工作的

day忘不掉的痛 1 pim模組 整合整流橋 制動單元 pfc 三相逆變 igbt橋 2 ipm模組 即智慧功率模組,整合門級驅動及眾多保護功能 過熱保護,過壓,過流,欠壓保護等 的igbt模組。ipm intelligent power module 即智慧功率模組,不僅把功率開關器件和驅動電路整...

在 excel vba 中定義類模組,要如何才能自定義 op

不能的,在 vb 中 open 只能是關鍵字,在呼叫時如果某一過程名不符合 vb 的要求,則需要在其兩側加方括號 dim mycollection as new collection dim nextenum as object set nextenum mycollection.newenum 照...