1.0 新建VSTO项目 并使用Excel880VSTO框架改善编程体验

小目标:

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

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

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

file

添加Ribbon功能区的基本步骤

VS中新建VSTO项目

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


新建完成得到如下界面

添加Ribbon功能区

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

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

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

file

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

file

原生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

file

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文件,本框架会持续更新
总是使用最新版即可

file

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

file

引用Excel880VSTO.DLL以及Import语句

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

加载项入口给Application赋值

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

录制宏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

 

posted @ 2022-11-08 09:51  郑广学  阅读(889)  评论(0编辑  收藏  举报