1.0 新建VSTO项目 并使用Excel880VSTO框架改善编程体验
小目标:
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中 点击按钮执行
学习交流QQ群341401932