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


    通过前两章的内容,有了一定的基础,但进入第三章,实例的步骤非常多,并且随着VS版本的升级,部分功能菜单界面发生了很大变化,所以,第三章的案例我将逐步编写!

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

    步骤一:Visual Studio 2013创建AutomationAddin类库。

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

               

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

              

    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互操作注册”复选框(在编译页的最下端)

                   

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

                  

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

                 

                

              

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

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

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

                 

                 

                

                

               

  • 相关阅读:
    推荐一个学习 SharePoint 2010 的站点
    应用反射技术为Infragistics Solution设计例子程序 代码简洁而且学习的效率高
    .NET程序员掌握的.NET技术
    Jpegoptim Tool
    Stack Overflow 漫谈
    NServiceBus最流行的开源企业服务总线AND让创建企业级.NET系统更加容易
    步步为营UML建模系列四、状态图(State)
    Web中的幻灯片组件实现
    轻轻松松SOA: NServiceBus
    细说 ASP.NET Cache 及其高级用法
  • 原文地址:https://www.cnblogs.com/xiehaofeng/p/12266373.html
Copyright © 2020-2023  润新知