栏目分类:
子分类:
返回
名师互学网用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
名师互学网 > IT > 软件开发 > 后端开发 > .Net

VB.net ComAddin从零开发,跟我一起造轮子,嗨起来

.Net 更新时间: 发布时间: IT归档 最新发布 模块sitemap 名妆网 法律咨询 聚返吧 英语巴士网 伯小乐 网商动力

VB.net ComAddin从零开发,跟我一起造轮子,嗨起来

VB.net ComAddin从零开发,跟我一起造轮子,嗨起来

 

       一直以来总是在使用VB6写comaddin,虽然用起来很顺手,但是VB6毕竟老了。于是乎有了向.net靠拢的思维。说实话,.net我也不是很喜欢,不过开发节省时间对我这种懒人还是可以的。C#、VB.NET除了语法差异,对平常用来说基本一样,所以还是VB.NET吧(懒人嘛)

     来吧,跟我一起造轮子吧(虽然很多高手很鄙视造轮子,我觉得造一遍轮子对新手练练手还是很有用的。)

      VB6写comaddin是引用EXCEL、OFFICE,然后添加对 IRibbonExtensibility  、IDTExtensibility2 接口的引用,然后实现接口。C#和VB.NET也一样。
     打开VB2019,新建项目,选择VB ,类库(.net framework),为了兼容XP,框架选择 .net framework 4。
    
    将建立项目的默认Class1类名改成 Connect ,当然也可以自己随便起名,习惯这样。



    选择项目属性,设置调试 ,启动外部程序,浏览到计算机里面安装的EXCEL.EXE 路径

    

   项目属性里面 签名,随便新增一个签名。
    

    接下来添加OFFICE和EXCEL引用。我一般习惯添加OFFICE14 ,EXCEL14 对应OFFICE2010.
 

    添加 Extensibility 引用(实现IDTExtensibility2 接口的)
    
   然后开始写代码了。


   在connect类顶部导入命名空间:
   Imports Excel = Microsoft.Office.Interop.Excel
   Imports Extensibility
   Imports System.Runtime.InteropServices   ’为添加GUID和ProgID
   Imports Microsoft.Office.Core
   Imports Microsoft.Office.Interop.Excel

  '添加GUID和ProgID

     'GUID自己用菜单 工具生成
  

  在Connect类 实现接口
    Implements IRibbonExtensibility   
    Implements IDTExtensibility2


   然后红线报错,提示必须为接口实现。分别实现上述接口。


  删除所有的 Throw New NotImplementedException()

  至此,一个空架子都搭起来了。程序入口就是 OnConnection ,程序结束就是OnDisconnection。
在OnConnection 里面随便写一句       MsgBox("VB.NETComAddin 你好 " & now() )

  添加一个资源文件,字符串 rb ,值为一个ribbon xml(不会写?论坛上有很多ribbon教程,我随便丢一个进去测试用,具体看源码)

  在 GetCustomUI方法(函数)里面添加一句  GetCustomUI = My.Resources.Resource1.rb  就是得到刚才添加的ribbon菜单字符串

  添加一个SUB ,名称对应ribbon xml里面的 onAction 名称
  Public Sub runribbon(Control As IRibbonControl)
        MsgBox(Control.Id) ‘显示点击的按钮ID
    End Sub


好吧,就这样, 一个最简单的comaddin就搭建起来了。

项目右键,生成,然后在文件资源管理器中打开,找到bin ,debug文件夹 ,找到生成的 VB.NETComAddin.dll 文件,复制到 windows/system32 (32位系统) 或者 windows/syswow64  (64位系统)文件夹里面

然后开始菜单栏,附件里面 找到 CMD命令,右键以管理员身份打开,切换到  C:WindowsMicrosoft.NETFrameworkv4.0.30319 运行命令,
regasm.exe /codebase  c:/windows/syswow64/vb.netcomaddin.dll (具体路径自己写准确) ,注册32位OFFICE用。
再次切换到  C:WindowsMicrosoft.NETFramework64v4.0.30319 运行上述命令,注册64位OFFICE用



当然这样还没完,显示注册成功了,你打开EXCEL却看不到,因为还有注册表要写入。新建一个文件文件,写入如下注册表项目:
Windows Registry Editor Version 5.00
[HKEY_CURRENT_USERSOFTWAREMicrosoftOfficeEXCELAddinsVB.NETComAddin.Connect]
"FriendlyName"="VB.NETComAddin"
"Description"="VB.NETComAddin"
"LoadBehavior"=dword:00000003
"CommandLineSafe"=dword:00000001
[HKEY_CURRENT_USERSoftwareKingsoftOfficeETAddinsWL]
"VB.NETComAddin.Connect"=""

另存,后缀名改成 reg文件。双击添加进电脑。

至此全部完成,打开EXCEL会看到如下效果。



点击菜单 运行效果:



附件源码打包下载:

https://download.csdn.net/download/qq_24968317/12665620

作者水平有限,出错在所难免,欢迎拍砖!至于其他对象释放之类的,自己看着办吧。

转载请注明:文章转载自 www.mshxw.com
本文地址:https://www.mshxw.com/it/955516.html
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

版权所有 (c)2021-2022 MSHXW.COM

ICP备案号:晋ICP备2021003244-6号