为Excel自定义函数添加帮助信息

作者:

1. 函数列表界面显示选中函数的说明信息

效果图:

image 实现方式:

Application.MacroOptions(Macro:="UDFtest", Description:="UDFtest Description ...",

需要自动注册的话,可以将上述代码写在 Workbook_Open 事件里面。

另一种方法在 VBE 界面,按 F2 调出「对象浏览器」,搜索函数,右键点击对应函数的「属性」菜单,在对话框内输入函数的说明信息。

2. 输入参数界面显示函数帮助信息和各个参数的说明信息

实现效果:

image实现方法:

实现此功能最早应该是 Laurent Longre 提出的 ,其思路「伪造」一个 DLL 函数:

XL97 有一个特性:假设你已经有一个名为 MyFunc 的自定义函数,然后向 Excel 注册一个同名的 DLL 函数。那么 当在 VBA 或者 Excel 里调用 MyFunc 函数时,它会直接调用 VBA 中自定义的函数,但是在插入函数的窗口,它显示的是注册的 DLL 函数的信息

故可以在 Excel 工作簿文件打开时,自动注册同名的 DLL 函数,并提供函数的说明信息、参数信息和分类,这些信息将被显示在选择函数的窗口。

只有工作表函数为 Private 时,自定义函数才不会显示在 User Defined 类别下,否则它可能会同时出现在两个以上的类别中。

但直接使用 Laurent 提供的办法有一个缺陷,其直接依赖的 REGISTER 和 ExecuteExcel4Macro 函数的输入字符串的长度必须在 255 以下,这对于函数说明较长或者有较多的函数参数时便不够用了。所以建议直接使用下面这篇文章中的改进的方法和代码(提供了样例程序和函数,可直接使用)

Registering A User Defined Function With Excel

3. 直接输入函数时,显示函数简单说明和提示函数参数信息

实现效果:

image image

实现方式:

Excel 自带的工作表函数有这些效果,在输入函数名时提示函数用途,在准备输入参数时,提示参数名和类型。但目前还没找到实现的方式。

Q. E. D.

类似文章:
编程 » VBA, Excel
如果不提供错误处理方法, VBA在出错时会停留在出错之处。Excel/VBA 提供 On Error关键词来处理程序运行过程中的错误,具体有下面两种用法:
编程 » Excel, VBA
无意中发现一个 Excel VBA 对待参数的一个"不正常"现象。这种处理方式可能无意中导致程序结果错误,而且你很难发现你的错误所在:
编程 » Excel, VBA
Excel VBA 出错时给出的错误信息极少,需要充分利用各种工具来进行调试。
编程 » Excel, VBA
最近学到一招,效果不错~
编程 » Excel, VBA
某些时候需要打开 Excel 文件来获取或者写入数据,但又不希望跳出打开的 Excel 文件窗口,可以用下面的代码:
编程 » Excel, VBA
某些时候需要打开 Excel 文件来获取或者写入数据,但又不希望跳出打开的 Excel 文件窗口,可以用下面的代码:
在工作中定期或不定期会收到一些数据文件,然后要将它们的附件保存到自己的电脑上,下面演示如何让 Outlook 自动做这件事情。