iT邦幫忙

0

[VBA] 跨模組 import 一定要用到public嗎

各位大大們好

最近剛學VBA,常常會導入其他模組的函數或巨集
但好像必須得對要導入的函數前綴加上 "public" 才可以跨模組導入

雖然這樣做也可以使用
但該public功能會在excel使用者點選巨集功能時出現在選項中
若都寫在同一模組下程式碼又會顯得很長很雜亂
想請教各位先進有沒有其他好的方法

如可以像python指定要導入的模組函數 ( from mod import fuc )
或是其他方法可以解決我面臨的問題呢?

我剛剛有找到一個方法
是直接用application去呼叫私有化的模組函數
ex: Application.Run ("Module1.fucAA")
因為新手好像不能回應或回答
只能打在這裡給大家參考

如有其他更好的方法還請大大提供
感謝各位大大先進

1 個回答

1
paicheng0111
iT邦高手 1 級 ‧ 2021-01-09 15:16:01
最佳解答

該public功能會在excel使用者點選巨集功能時出現在選項中

如果你只是不想讓巨集出現在選項中的話,可以試試看為該Sub加上dummy argument,該Sub就不會出現在巨集功能的選項中。

例如:原本的sub

Sub oldSub()
    'your_code
End Sub

改為

Sub newSub(optional dummy = now)
    'your_code
End Sub

我要發表回答

立即登入回答