ExcelHome技术论坛

 找回密码
 免费注册

QQ登录

只需一步,快速开始

快捷登录

搜索
EH技术汇-专业的职场技能充电站 妙哉!函数段子手趣味讲函数 Excel服务器-会Excel,做管理系统 效率神器,一键搞定繁琐工作
HR薪酬管理数字化实战 Excel 2021函数公式学习大典 Excel数据透视表实战秘技 打造核心竞争力的职场宝典
让更多数据处理,一键完成 数据工作者的案头书 免费直播课集锦 ExcelHome出品 - VBA代码宝免费下载
用ChatGPT与VBA一键搞定Excel WPS表格从入门到精通 Excel VBA经典代码实践指南
查看: 12564|回复: 18

[分享] VSTO开发示例:基于vb.net的功能区 XML 创建Excel外接程序

[复制链接]

TA的精华主题

TA的得分主题

发表于 2017-3-23 22:11 | 显示全部楼层 |阅读模式

VSTO开发示例:基于vb.net的功能区 XML 创建Excel外接程序


  • 环境准备


本例创建环境:Windows764位)+office2013+VS2015

二、创建项目

1、创建名为ExcelRibbon 的“Excel外接程序”项目,如下图所示。
image001.png
image002.png


  • 创建 VSTO 外接程序选项卡


   创建“外接程序”选项卡,请将“功能区(XML)”项添加到项目中。同时向此选项卡添加一些按钮。

  • 在“项目”菜单上,单击“添加新项”。如下图所示:


image003.png

评分

3

查看全部评分

TA的精华主题

TA的得分主题

 楼主| 发表于 2017-3-23 22:17 | 显示全部楼层

2、在“添加新项”对话框中,选择“功能区(XML)”。如下图图所



  • 将新功能区更名为“ExcelRibbon”,然后单击“添加”。


image004.png

在 ExcelRibbon.vb 文件将在设计器中打开。还会将名为 ExcelRibbon.xml 的 XML 文件添加到项目中。

  • 在“解决方案资源管理器”中,右键单击 ThisAddin.vb,然后单击“查看代码”。
  • 将下面的代码添加到 ThisAddin 类中。


  • Protected Overrides Function CreateRibbonExtensibilityObject() As Picrosoft.Office.Core.IRibbonExtensibility
  • Return New ExcelRibbon()
  • End Function
    如图所示
  • image005.png


    • 在“解决方案资源管理器”中,右键单击ExcelRibbon 项目,然后单击“生成”。  验证此项目是否已生成且未发生错误。


    image006.png
  • image007.png



TA的精华主题

TA的得分主题

 楼主| 发表于 2017-3-23 22:19 | 显示全部楼层

三、将按钮添加到“外接程序”选项卡

1、在“解决方案资源管理器”中,右键单击 ExcelRibbon.xml,然后单击“打开”。
image008.png
image009.png
  1. 将以下内容替换:
  2. <?xml version="1.0" encoding="UTF-8"?>
  3. <customUI xmlns="http://schemas.microsoft.com/office/2009/07/customui" onLoad="Ribbon_Load">
  4.   <ribbon>
  5.     <tabs>
  6.       <tab idMso="TabAddIns">
  7.         <group id="MyGroup"
  8.                label="My Group">
  9.         </group>
  10.       </tab>
  11.     </tabs>
  12.   </ribbon>
  13. </customUI>

  14. 替换后的内容为
  15. <?xml version="1.0" encoding="UTF-8"?>
  16. <customUI xmlns="http://schemas.microsoft.com/office/2009/07/customui" onLoad="Ribbon_Load">
  17.   <ribbon>
  18.     <tabs>
  19.       <tab id="henrylam" label="我的测试">
  20.         <group id="test"
  21.                label="测试">
  22.           <button id="Button1"
  23.                   label="插入内容"
  24.                   size="large"
  25.                   imageMso="HappyFace"
  26.                   onAction="test1" />
  27.           <button id="Button2"
  28.                   label="关于"
  29.                   size="large"
  30.                   imageMso="AnimationTransitionGallery"
  31.                   screentip="使用说明"
  32.                   supertip="鼠标放在上面显示使用说明"
  33.                  onAction="test2" />
  34.         </group >
  35.       </tab>
  36.     </tabs>
  37.   </ribbon>
  38. </customUI>
复制代码


TA的精华主题

TA的得分主题

 楼主| 发表于 2017-3-23 22:22 | 显示全部楼层

四、添加按钮的回调方法

1、在“解决方案资源管理器”中,右键单击 Ribbon.vb,然后单击“打开”。

2.将以下代码添加到WordRibbon.vb文件的顶部。  此代码将为Microsoft.Office.Interop.Word 命名空间创建别名


Imports Excel =Microsoft.Office.Interop. Excel ‘命名空间创建别名


插入后如下图
image010.png


3、将以下方法添加到ExcelRibbon类。  这是“插入文本”按钮的回叫方法,用于在光标的当前位置向活动文档添加字符串。

    Public Subtest1(ByVal control As Office.IRibbonControl)

        Dim ashAsExcel.Worksheet = CType(Globals.ThisAddIn.Application.ActiveSheet,Excel.Worksheet)

        ash.Range("A1:e1").Value= {"FileName", "File Type", "File Size", "LastChange", "File Path"}

       ash.Cells.Borders.ColorIndex = 1

        ash.Range("A1:e1").Borders.ColorIndex= 1

End Sub

插入位置如下图
image011.png

插入后的如下图

image012.png



TA的精华主题

TA的得分主题

 楼主| 发表于 2017-3-23 22:23 | 显示全部楼层

五、测试 VSTO 外接程序

1. F5 运行项目。或
image013.png


2.确认“外接程序”选项卡在功能区上可见。

3.单击“外接程序”选项卡。

4.确认“我的测试”组在功能区上可见。

5.单击“我的测试”组中的“插入内容”按钮。

向表格填充内容。



TA的精华主题

TA的得分主题

 楼主| 发表于 2017-3-23 22:25 | 显示全部楼层

TA的精华主题

TA的得分主题

 楼主| 发表于 2017-3-23 22:27 | 显示全部楼层
示例文件
ExcelRibbon.rar (189.95 KB, 下载次数: 270)

TA的精华主题

TA的得分主题

 楼主| 发表于 2017-3-23 22:32 | 显示全部楼层
文档
VSTO开发示例.rar (1.42 MB, 下载次数: 434)

TA的精华主题

TA的得分主题

发表于 2017-4-3 19:40 | 显示全部楼层

TA的精华主题

TA的得分主题

发表于 2017-4-24 11:02 | 显示全部楼层
对我这种菜鸟还是很有用的,至少知道的怎么跟EXCEL的单元格互动
您需要登录后才可以回帖 登录 | 免费注册

本版积分规则

手机版|关于我们|联系我们|ExcelHome

GMT+8, 2024-11-21 18:30 , Processed in 0.043066 second(s), 11 queries , Gzip On, MemCache On.

Powered by Discuz! X3.4

© 1999-2023 Wooffice Inc.

沪公网安备 31011702000001号 沪ICP备11019229号-2

本论坛言论纯属发表者个人意见,任何违反国家相关法律的言论,本站将协助国家相关部门追究发言者责任!     本站特聘法律顾问:李志群律师

快速回复 返回顶部 返回列表