使用Visual Studio 2005编写Excel自定义函数
步骤1:打开Visual Studio 2005,单击菜单“文件”─—“新建项目”。
步骤2:在“新建项目”对话框中,选择“Windows”节点中的“类库”,并输入名称,如下图。单击“确定”,创建一个类库项目。

步骤3:在Class1.vb代码窗口中,输入下面的代码:
Imports System
Imports System.Runtime.InteropServices
Imports Microsoft.Win32
<ClassInterface(ClassInterfaceType.AutoDual), ComVisible(True)> _
Public Class TestFunction
Public Function fff() As Long
Dim result As Long
result = 12345
Return result
End Function
<ComRegisterFunctionAttribute()> _
Public Shared Sub RegisterFunction(ByVal type As Type)
Registry.ClassesRoot.CreateSubKey(GetSubKeyName(type))
End Sub
<ComUnregisterFunctionAttribute()> _
Public Shared Sub UnregisterFunction(ByVal type As Type)
Registry.ClassesRoot.DeleteSubKey(GetSubKeyName(type), False)
End Sub
Private Shared Function GetSubKeyName(ByVal type As Type) As String
Dim s As String = “CLSID\{” + type.GUID.ToString().ToUpper() + “}\Programmable”
Return s
End Function
End Class
步骤4:单击菜单“项目”─—“TestMyFunctions属性”。
步骤5:选择“编译”选项卡,选中“为COM Interop注册”前的复选框,如下图。

步骤6:单击菜单“生成”─—“生成TestMyFunctions”。
步骤7:保存该项目,然后退出Visual Studio 2005。
步骤8:启动Excel 2003。
步骤9:单击菜单“工具”─—“加载宏”。
步骤10:在“加载宏”对话框中,单击其右侧的“自动化”按钮。
步骤11:在“自动化服务器”对话框的列表中,找到“TestMyFunctions.TestMyFunction”并选中,然后单击“确定”,如下图。

步骤12:此时,在“加载宏”对话框中,添加了“TestMyFunctions.TestMyFunction”项,如下图,单击“确定”。

步骤13:在Excel工作表单元格中,按普通的公式方输入“=fff()”,按回车后得到结果“12345”。
此时,在Excel的“插入函数”对话框中,添加了一个新类别“TestMyFunctions.TestMyFunction”,其中包括自定义的函数fff,如下图。


发表评论