2010-04-01 68 views
4

在VBA的標準IDE中,intellisense是內置於許多標準VBA功能的。即msgbox()的按鈕變量爲您提供瞭如何顯示消息框的選項列表。這樣,開發人員在每次使用函數時都不必記憶或查找選項。智能感知功能在自定義VBA功能?

我可以爲我的自定義VBA功能實現相同嗎?這是一個粗略的例子,但我可以寫這樣的:

Public Function DoSomething(X as string)(Options X="Opt1","Opt2") as variant
...

當我調用這個函數,我會得到一個彈出給我的選項X作爲選項1和OPT2

+0

你需要更清楚。 – AMissico 2010-04-01 15:43:06

回答

8

您需要聲明自己的枚舉,然後將該函數的參數定義爲枚舉類型。

Public Enum eOptions 
    Option1 
    Option2 
End Enum 

public Function DoSomething(ByVal x as string, Byval MyOption as eOptions) 

當你調用該函數鼻翼這樣的:

Call DoSomething("myValue", Option2) 

你會看到可用於第二個參數的功能不是「選項1」或「1選項」的價值觀。

+0

+1但是使用「option」作爲參數名稱confused Access 2003. Option是關鍵字。 – HansUp 2010-04-01 17:01:26

+0

@HansUp感謝您的支持。我通過重命名第二個參數來編輯答案。 – 2010-04-01 17:38:34

+0

很好的答案。還有一個問題:我如何從數字常量轉換回字符串常量?即使用上面的例子,是否有CEnum(0)會返回「Option1」? – PowerUser 2010-04-01 19:09:41