分享

Excel及WPS插件开发 VSTO极速入门

 郑广学老师 2022-06-11 发布于湖北

小目标:

VSTO新建Excel插件项目,并使用VSTO880框架改善编码体验

视频讲解

请点击文章下方的 阅读原文

如何创建全新的VSTO插件项目

注意项目目录 尽量保持和我的教程目录一致 设置在
D:\VSTO880\Project
注意框架版本 VS2022需要安装4.0和4.5的框架
在群文件获取

添加Ribbon功能区的基本步骤

VS中新建VSTO项目

打开VS 新建项目 选择VSTO模板


新建完成得到如下界面

添加Ribbon功能区

在右侧解决方案 项目文件夹右键添加–>新建-可视化功能区

添加新选项卡 删除内置选项卡

先移除默认的选项卡 这个处于功能区 加载项标签 一般都不用它

再右键添加新选项卡 工具箱中依次拖动Group和Buttondao到右侧Ribbon面板上

原生VSTO中与Excel交互的基本写法

在Ribbon中添加按钮 双击进入事件代码 添加代码如下
可以看到以前直接访问range属性这些都要加很长的前缀
非常不方便 这里我给大家提供的Excel880VSTO框架 可以让代码书写变得和VBA一样简单

Private Sub Button1_Click(sender As Object, e As RibbonControlEventArgs) Handles Button1.Click
'A1单元格写入当前时间
Globals.ThisAddIn.Application.Range("A1").Value = Now
'对话框弹出当前选定区域的地址
MsgBox(Globals.ThisAddIn.Application.Selection.address)
'A2单元格写入当前工作表的名称
Globals.ThisAddIn.Application.Range("A2").Value = Globals.ThisAddIn.Application.ActiveSheet.name
End Sub

Excel880VSTO框架与Excel交互加速写法

使用Excel880VSTO框架后 代码精简如下 具体用法继续往下看

 Private Sub Button2_Click(sender As Object, e As RibbonControlEventArgs) Handles Button2.Click
'EXCEL880VSTO框架加持后和VBA写法几乎一致
'A1单元格写入当前时间
Range("A1").Value = Now
'对话框弹出当前选定区域的地址
MsgBox(Selection.address)
'A2单元格写入当前工作表的名称
Range("A2").Value = ActiveSheet.name
End Sub

从群文件下载Excel880VSTO.DLL文件L,复制到Lib文件夹,

下载好Excel880VSTO.DLL文件,本框架会持续更新
总是使用最新版即可

在刚才新建的项目文件中 新建Lib文件夹 DLl复制进去

引用Excel880VSTO.DLL以及Import语句

右侧解决方案–>引用–>添加引用选择刚才的Excel880VSTO.DLL文件
ThisAddin和Ribbon代码区顶部添加Import语句

加载项入口给Application赋值

这样 上面的精简版代码就生效 以后就可以和写VBA代码一样来写VSTO代码了!!!

录制宏VBA代码移植示范

选中A1:B10区域,全体输入1,选中B1设置黄色背景色,再设置文字加粗 录制得到VBA代码如下

这段代码复制到VSTO中,在没有Excel880VSTO框架的情况下 会看到很多报错 需要逐句修改

而使用了Excel880VSTO框架后 这段代码 可以直接运行!

详细用法参考1.3到1.9

具体用VBA转VSTO细节在1.3-1.9学习,后续会不断增加核心框架能力

作业

从VS新建一个新项目,调用Excel880VSTO框架,录制一个宏,新增一个sheet,并改名为 aaa ,尝试移植代码到VSTO中 点击按钮执行


更多VBA和VSTO教程, 请访问我的新网站, VBAYYDS.COM (VBA永远的神)

    转藏 分享 献花(0

    0条评论

    发表

    请遵守用户 评论公约

    类似文章 更多