VSTO开发指南(VB版) 第三章 Excel编程

经过前两章的内容,有了必定的基础,但进入第三章,实例的步骤很是多,而且随着VS版本的升级,部分功能菜单界面发生了很大变化,因此,第三章的案例我将逐步编写!函数

实例3.1的目标就是给Excel写一个加载宏,实质就是写一个Excel函数,并经过在注册表中注册,实现像自带函数那样的功能。工具

步骤一:Visual Studio 2013建立AutomationAddin类库。开发工具

            文件——新建——项目——模板——Visual Basic——类库——名称中输入“AutomationAddin”——肯定。ui

           

 

 

步骤二:在class1.vb代码文件中书写代码:spa

          

Imports System
Imports System.Runtime.InteropServices
Imports Microsoft.Win32

<ClassInterface(ClassInterfaceType.AutoDual), ComVisible(True)> _
Public Class MyFunctions

    Public Function MultiplyNTimes(ByVal number1 As Double, ByVal number2 As Double, ByVal timesToMultiply As Double) As Double

        Dim result As Double = number1
        For i As Double = 0 To timesToMultiply
            result = result * number2
        Next

        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 New System.Text.StringBuilder()

        s.Append("CLSID\{")
        s.Append(type.GUID.ToString().ToUpper())
        s.Append("}\Programmable")

        Return s.ToString()
    End Function

End Class

步骤三:项目——“AutomationAddin”属性——>编译——>选中“为COM互操做注册”复选框(在编译页的最下端)3d

               

 

 步骤四:生成——生成解决方案。  注:若生成解决方案成功,则就意味着已经将宏成功注册到了注册表。code

              

 

 步骤五:新建一个Excel文件,并选择“开发工具”——“加载项”——“自动化”——“AutomationAddin.MyFunctions”——肯定。当提示不能找到mscoree.dll的错误信息时选择“否”。blog

             

 

            

 

          

 

 

 步骤六:应用刚写的函数MultiplyNTimes,第一个数是基数,第二个数乘第一个数,第三个数表示乘的次数,MultiplyNTimes(1,2,3)=1X2X2X2=16ip

              在Excel中输入值:10,3,5   并选中单元格——“插入函数”——或选择类别中的“AutomationAddin.MyFunctions”——选择函数中的“MultiplyNTimes”——肯定开发

             在函数参数对话框中填入所需参数E2,E3,E4单元格,点“肯定”,所有完成。

             

 

             

 

            

 

            

 

           

相关文章
相关标签/搜索