当前位置: 首页 > news >正文

Excel VSTO开发2 -建立Excel VSTO项目

版权声明:本文为博主原创文章,转载请在显著位置标明本文出处以及作者网名,未经作者允许不得用于商业目的。

2 建立Excel VSTO项目

新建项目,选择Excel 2013和2016 VSTO外接程序。输入项目名称(本示例的项目名称为:ExcelAddIn_lesson)和保存位置,点击[确定]。

图1 新建VSTO项目

进入之后可以看到已经新建两“块”代码如下(代码已经进行了注释):

[代码1]

'插件启动时候触发该事件,包括:插件随Excel启动、插件关闭后再次启用

Private Sub ThisAddIn_Startup() Handles Me.Startup

        请添加代码

End Sub

'插件退出时候触发该事件,包括:退出Excel、关闭此插件

Private Sub ThisAddIn_Shutdown() Handles Me.Shutdown

        请添加代码

End Sub

[代码2]在以下代码在插件启动和退出事件内添加了相应的处理代码。

'插件启动时候

Private Sub ThisAddIn_Startup() Handles Me.Startup

        MsgBox("startup")

End Sub

'插件退出时候

Private Sub ThisAddIn_Shutdown() Handles Me.Shutdown

        MsgBox("shutdown")

End Sub

点击工具栏[运行]按钮,将启动新的Excel工作簿,此时将弹出对话框:

2 插件启动事件

当关闭Excel的时候,将弹出对话框:

3 插件关闭事件

以上代码只是示例,实际中频繁弹出对话框会让用户感到心烦。用户可以将采用以下方式关闭插件。

点击Excel菜单项[文件]|选项]:

4 [文件]|选项]

在[Excel选项]窗口左侧,点击[加载项],可以看到ExcelAddIn_lesson在加载项列表里面。

5 Excel加载项

点击列表最下面的[管理]下拉框,选中[COM 加载项],点击[转到],此时弹出[COM 加载项]窗口,用户在这里可以根据需要停用、启用、添加、删除插件。

6 COM 加载项窗口

取消 ExcelAddIn_lesson 前面的勾,点击[确定],此时会触发插件关闭事件:

图7 停用触发插件关闭事件

当然,用户离不开该插件,在[COM 加载项]窗口再次启用此插件,会触发相应的插件启动事件。

相关文章:

Excel VSTO开发2 -建立Excel VSTO项目

版权声明:本文为博主原创文章,转载请在显著位置标明本文出处以及作者网名,未经作者允许不得用于商业目的。 2 建立Excel VSTO项目 新建项目,选择Excel 2013和2016 VSTO外接程序。输入项目名称(本示例的项目名称为&am…...

chrome插件:一个基于webpack + react的chrome 插件项目模板

项目结构 $ tree -L 1 . ├── README.md ├── node_modules # npm依赖 ├── package.json # 详细依赖 ├── pnpm-lock.yaml ├── public # 里边包含dist,安装的时候安装这个目录即可 ├── src …...

Vue:组件缓存

组件缓存 keep-alive 文章目录 组件缓存 keep-alive一、keep-alive是什么二、keep-alive优点三、问题四、解决方案五、代码示例 六、回顾一下钩子七、总结 一、keep-alive是什么 keep-alive是Vue中的一个内置组件,会缓存不活动的组件实例。并不会销毁组件&#xff…...

【C++】DICOM医学影像工作站PACS源码

PACS即影像存档与传输系统,是医学影像、数字化图像技术、计算机技术和网络通讯技术相结合的产物,是处理各种医学影像信息的采集、存储、报告、输出、管理、查询的计算机应用程序。 PACS是基于DICOM标准的医学影像管理系统,其模块覆盖了从影像…...

UDP的可靠性传输2

系列文章目录 第一章 UDP的可靠性传输-理论篇(一) 第二章 UDP的可靠性传输-理论篇(二) 文章目录 系列文章目录三、流量控制RTORTT流量控制1.如何控制流量2. 发送方何时在发送数据3.流程图 拥塞控制1.慢启动 总结1.拥塞控制和流量…...

《Java程序设计》实验报告

实验内容:面向对象程序设计 1、定一个名为Person的类,其中含有一个String类型的成员变量name和一个int类型的成员变量age, 分别为这两个变量定义访问方法和修改方法,另外再为该类定义一个名为speak的方法, 在其中输出n…...

数据可视化、BI和数字孪生软件:用途和特点对比

在现代企业和科技领域,数据起着至关重要的作用。为了更好地管理和理解数据,不同类型的软件工具应运而生,其中包括数据可视化软件、BI(Business Intelligence)软件和数字孪生软件。虽然它们都涉及数据,但在功…...

Ros noetic 机器人坐标记录运动路径和发布 实战教程(C)

前言: 承接上一篇博文本文将编写并记录上文中详细的工程项目,用于保存小车的运动路径,生成对应的csv,和加载所保存的路径到实际的Rviz中,本文将开源完整的工程项目,工程结构如下: 工程原码位于文章末尾: 路径存储: waypoint_saver 用于存储 waypoint 的节点 waypo…...

Linux入门之多线程|线程的同步|生产消费模型

文章目录 一、多线程的同步 1.概念 2.条件变量 2.1条件变量概念 2.2条件变量接口 1.条件变量初始化 2.等待条件满足 3.唤醒等待 3.销毁条件变量 2.3条件变量demo 二、生产消费模型 1.生产消费模型 2.基于BlockQueue的生产者消费者模型 3.基于C用条件变量和互斥锁实…...

MATLAB解析和保存ini文件

1. 将ini文件转换成struct结构体 function data ini2struct(filename)fid fopen(filename, r);if fid -1error(Unable to open file %s., filename);enddata struct();section ;while ~feof(fid)line fgetl(fid);line strtrim(line);% 如果是注释行或者空行&#xff0c…...

模型压缩-对模型结构进行优化

模型压缩-对模型结构进行优化 概述 模型压缩通常都是对推断过程而言,训练过程的计算代价通常不考虑,因为GPU可以快速完成任意复杂度模型的训练对于推断过程来说,模型应用才是对于速度敏感的场景多数情况下 希望使用尽可能少的能耗完成京可能…...

软件工程课件

软件工程 考点概述软件工程概述能力成度模型能力成熟度模型集成软件过程模型逆向工程![ ](https://img-blog.csdnimg.cn/425cea8190fb4c5ab2bf7be5e2ad990e.png) 考点概述 重点章节 软件工程概述 之前老版教程的,之前考过 能力成度模型 记忆 能力等级 和 特点 能力…...

基于ADS的marx雪崩电路设计-设计实践(射频脉冲源)

基于ADS的marx雪崩电路设计-设计实践(射频脉冲源) 设计一个ns级别的脉冲源,属于是半路转行的,虽然不了解具体原理但是也可以进行设计。具体的设计理论以及优化方法将在之后进行讨论. 参考文献:基于Marx电路的亚纳秒级…...

X86_64函数调用汇编程序分析

X86_64函数调用汇编程序分析 1 X86_64寄存器使用标准2 对应代码的分析2.1 main函数及其对应的汇编程序2.1.1 main的C代码实现2.1.2 main函数对应汇编及其分析2.1.3 执行完成之后栈的存放情况 2.2 test_fun_a函数及其对应的汇编程序2.2.1 test_fun_a函数的C实现2.2.2 test_fun_a…...

Vue3【Provide/Inject】

前言 自从使用了Provide/Inject代码的组织方式更加灵活了,但是这个灵活性的增加伴随着代码容错性的降低。我相信只要是真的在项目中引入Provide/Inject的同学,一定一定有过或者正在经历下面的状况: 注入名(Injection key&#x…...

Go-Python-Java-C-LeetCode高分解法-第四周合集

前言 本题解Go语言部分基于 LeetCode-Go 其他部分基于本人实践学习 个人题解GitHub连接:LeetCode-Go-Python-Java-C Go-Python-Java-C-LeetCode高分解法-第一周合集 Go-Python-Java-C-LeetCode高分解法-第二周合集 Go-Python-Java-C-LeetCode高分解法-第三周合集 本…...

vue路由

一、声明式导航-导航链接 1.需求 实现导航高亮效果 如果使用a标签进行跳转的话,需要给当前跳转的导航加样式,同时要移除上一个a标签的样式,太麻烦!!! 2.解决方案 vue-router 提供了一个全局组件 router…...

最强的AI视频去码图片修复模型:CodeFormer

目录 1 CodeFormer介绍 1.1 CodeFormer解决的问题 1.2 人脸复原的挑战 1.3 方法动机 1.4 模型实现 1.5 实验结果 2 CodeFormer部署与运行 2.1 conda环境安装 2.2 运行环境构建 2.3 模型下载 2.4 运行 2.4.1 人脸复原 ​编辑​编辑 2.4.2 全图片增强 2.4.3 人脸颜色…...

jenkins自动化部署安装

一、准备工作 1、安装jdk # 1、下载准备jdk包(也可以用docker安装) wget ... # 2、直接解压到,无需安装 unzip ...2、安装maven # 1、下载准备maven压缩包 wget ... # 2、直接解压,无需安装 unzip ... # 3、修改setting.xml,修改localRepository和MIRROR镜像地址…...

如何调用Zabbix API获取主机信息

自Zabbix 1.8版本被引进以后,Zabbix API开始扮演着越来越重要的角色,它可以为批量操作、第三方软件集成以及其他应用提供可编程接口。 在运维实践中,Zabbix API还有更多巧妙的应用。 面对规模庞大的监控设备,可能会出现某台机器发…...

OrCAD Capture CIS DRC矩阵设置实战:如何自定义ERC检查规则

OrCAD Capture CIS DRC矩阵深度定制指南:从基础配置到高阶规则设计 1. 理解DRC矩阵的核心价值与应用场景 在复杂电路设计领域,标准化的设计规则检查(DRC)往往无法满足特殊元件的连接验证需求。OrCAD Capture CIS的ERC矩阵功能正是为解决这一痛点而生——…...

【openbmc8】mctp pldm

文章目录 1.mctp协议 1.1 mctp通用报文 1.2 mctp over i2c packet format 2.驱动分析 2.1 mctp pcie vdm 2.1 用户层操作代码流程 2.2 用户层操作测试 3.dbus适配 1.mctp协议 1.1 mctp通用报文 谁分配EID谁就是bus owner。mctp建立关联后都用EID(类似ip地址)通信:下图最后…...

【WRF-Chem工具】grid_finn_fire_emis_v2020 工具官方用户指南解析

目录 1. 工具概述 (General Introduction)2. 针对 WRF 用户的特别说明 (SPECIAL NOTES FOR WRF)A. 输出文件与烟羽抬升 (Plume Rise)B. 变量、单位与植被类型C. 运行前提条件(非常重要)D. 时间分辨率与日变化E. WRF namelist.input 配置要求 3. fire_emi…...

用STM32CubeMX配置PWM捕获:从定时器选型到串口输出全流程

STM32CubeMX实战:PWM捕获全流程解析与调试技巧 在嵌入式开发中,精确测量PWM信号的周期和占空比是常见需求。本文将带你从零开始,使用STM32CubeMX和HAL库完成PWM捕获功能的完整实现。不同于简单的教程复制,我们会深入探讨两种捕获…...

【Word排版】制表位实战:从入门到精通

1. 制表位到底是什么?为什么比空格更好用? 第一次用Word排简历时,我盯着参差不齐的工作经历栏发愁——明明按了20次空格键,为什么第二行的日期还是对不齐?直到同事教我按住Tab键,所有内容突然像军训列队般整…...

解锁3大高效创作模式:无需安装的在线演示神器全解析

解锁3大高效创作模式:无需安装的在线演示神器全解析 【免费下载链接】PPTist PowerPoint-ist(/pauəpɔintist/), An online presentation application that replicates most of the commonly used features of MS PowerPoint, allowing for …...

通义千问大模型+Flask:打造智能PDF批量解析与问答系统

1. 为什么需要智能PDF解析与问答系统 每天都有海量的PDF文档在各个行业流转,从合同协议到财务报表,从学术论文到产品手册。传统的人工阅读和提取方式效率低下,容易出错。我曾经帮一家律师事务所处理过上千份合同,光是找出所有涉及…...

提升Python编码效率:ptpython语法高亮与自动补全的终极指南

提升Python编码效率:ptpython语法高亮与自动补全的终极指南 【免费下载链接】ptpython A better Python REPL 项目地址: https://gitcode.com/gh_mirrors/pt/ptpython ptpython是一款功能强大的Python REPL工具,它通过语法高亮、智能自动补全和丰…...

实战应用:基于快马构建抖音版本更新深度分析系统,赋能产品决策

今天想和大家分享一个实战项目:如何用InsCode(快马)平台快速搭建抖音版本更新分析系统。作为产品经理,每次版本更新后都需要快速掌握用户反馈和市场反应,这个工具帮我节省了大量手工整理数据的时间。 数据采集模块搭建 首先需要获取两个核心数…...

3大核心价值:Path of Building离线构建规划工具全解析

3大核心价值:Path of Building离线构建规划工具全解析 【免费下载链接】PathOfBuilding Offline build planner for Path of Exile. 项目地址: https://gitcode.com/GitHub_Trending/pa/PathOfBuilding Path of Building(简称PoB)是《…...