2010-04-01 69 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