您的位置:程序门 -> vb -> vba



如何给自定义函数添加描述信息


[收藏此页] [打印本页]选择字色:背景色:字体:[][][]


如何给自定义函数添加描述信息
发表于:2008-01-04 16:18:44 楼主
请教各位大虾:
通过代码在excel中为自定义函数添加描述信息,我已经找到代码,但是不知道怎么实现这个方法。。。
代码如下:
this   example   shows   how   to   register   functions   into   user-defined   catagories   and
provide   descriptions   for   their   arguments.   the   auto_open   procedure   registers  
the   two   functions,   multiply   and   divide   in   two   categories   multiplication   and  
division   and   provides   descriptions   of   the   input   parameters.

const   lib   =   """c:\windows\system\user32.dll"""
option   base   1

private   function   multiply(n1   as   double,   n2   as   double)   as   double
multiply   =   n1   *   n2
end   function

'==========================================

private   function   divide(n1   as   double,   n2   as   double)   as   double
divide   =   n1   /   n2
end   function

'==========================================

sub   auto_open()

register   "divide",   3,   "numerator,divisor",   1,   "division",   _
"divides   two   numbers",   """numerator"",""divisor   """,   "charpreva"
register   "multiply",   3,   "number1,number2",   1,   "multiplication",   _
"multiplies   two   numbers",   """first   number"",""second   number   """,   _
"charnexta"

end   sub

'==========================================

sub   register(functionname   as   string,   nbargs   as   integer,   _
args   as   string,   macrotype   as   integer,   category   as   string,   _
descr   as   string,   descrargs   as   string,   flib   as   string)

application.EXECuteexcel4macro   _
"register("   &   lib   &   ","""   &   flib   &   ""","""   &   string(nbargs,   "p")   _
&   ""","""   &   functionname   &   ""","""   &   args   &   ""","   &   macrotype   _
&   ","""   &   category   &   """,,,"""   &   descr   &   ""","   &   descrargs   &   ")"

end   sub

'==========================================

sub   auto_close()

dim   fname,   flib
dim   i   as   integer
fname   =   array("divide",   "multiply")
flib   =   array("charpreva",   "charnexta")
for   i   =   1   to   2
with   application
.EXECuteexcel4macro   "unregister("   &   fname(i)   &   ")"
.EXECuteexcel4macro   "register("   &   lib   &   _
",""charpreva"",""p"","""   &   fname(i)   &   """,,0)"
.EXECuteexcel4macro   "unregister("   &   fname(i)   &   ")"
end   with
next

end   sub
发表于:2008-01-04 16:27:481楼 得分:0
帮顶
发表于:2008-01-04 16:36:522楼 得分:0
up


快速检索

最新资讯
热门点击