使用Visual Studio 2005编写Excel自定义函数

步骤1:打开Visual Studio 2005,单击菜单“文件”─—“新建项目”。
步骤2:在“新建项目”对话框中,选择“Windows”节点中的“类库”,并输入名称,如下图。单击“确定”,创建一个类库项目。
dotnetexcelfunctions1
步骤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注册”前的复选框,如下图。
dotnetexcelfunctions2
步骤6:单击菜单“生成”─—“生成TestMyFunctions”。
步骤7:保存该项目,然后退出Visual Studio 2005。
步骤8:启动Excel 2003。
步骤9:单击菜单“工具”─—“加载宏”。
步骤10:在“加载宏”对话框中,单击其右侧的“自动化”按钮。
步骤11:在“自动化服务器”对话框的列表中,找到“TestMyFunctions.TestMyFunction”并选中,然后单击“确定”,如下图。
dotnetexcelfunctions3
步骤12:此时,在“加载宏”对话框中,添加了“TestMyFunctions.TestMyFunction”项,如下图,单击“确定”。
dotnetexcelfunctions4
步骤13:在Excel工作表单元格中,按普通的公式方输入“=fff()”,按回车后得到结果“12345”。
此时,在Excel的“插入函数”对话框中,添加了一个新类别“TestMyFunctions.TestMyFunction”,其中包括自定义的函数fff,如下图。
dotnetexcelfunctions5


提示:您可以在评论中使用HTML标签,且任何与HTML标签相同的符号都会被理解为HTML标签并以相应的格式显示.如果您的评论中有代码,可以使用相应的标签,例如,如果有VB或VBA代码,则可以使用[vb]标签,即[vb]放置的代码[/vb],这样会很清晰地显示代码.

发表评论