第80集 封装函数与COM加载宏
389、 用VB开发自定义函数
我们可以用VB编写自定义函数,然后封装成dll文件,最后在excel中使用该自定义函数,具体步骤如下:
封装可以在工作表中使用的自定义函数和79集一样,只是加载时多了一个步骤
1 创建步骤省略,下面是要封装的自定义函数
Function OnlyCount(rg As Excel.Range)
Dim d As Object
Dim arr, sr, r
Set d = CreateObject(“scripting.dictionary”)
arr = rg
For Each r In arr
d® = “”
Next r
OnlyCount = d.Count
End Function
2 加载dll中的自定义函数
注册dll 控件。regsvr32 functionfeng.dll
工具–宏--加载宏–自动化。找到在VB中命名的工程名称和类模块名组合成的文字,选取它确定。回到加载宏对话框中,已出现该函数项目。
3 使用方法。和一般的excel函数使用方法相同
390、 COM加载宏_事件程序
如果想用com加载宏的形式替代在excel的写EXCEL对象事件,可以在VB里编写好事件程序,封装到dll里,然后注册dll
和函数封装不同,com加载宏需要在VB里添加"外接程序”(设计器设置属性,工程—引用office和excel)
AddinInstance_OnConnection相当于excel里的open事件,随时程序的打开而自动加载
AddinInstance_OnDisconnection事件相当于close事件,在程序关闭时运行。