VBA高级应用30例:Ribbon(功能区)的介绍

news2024/11/26 4:38:04

《VBA高级应用30例》(版权10178985),是我推出的第十套教程,教程是专门针对高级学员在学习VBA过程中提高路途上的案例展开,这套教程案例与理论结合,紧贴“实战”,并做“战术总结”,以便大家能很好的应用。教程的目的是要求大家在实际工作中分发VBA程序,写好的程序可以升级。

本套教程共三册三十个专题,VBA高级应用30例:Ribbon(功能区)的介绍3d179606e50d1f133b4672ea440d9b77.jpeg

【分享成果,随喜正能量】面对不擅长的事,不要死磕,接纳自己有力所不及的地方。接纳并理解生命的局限性,也正是因为有局限,我们才有了成长的空间,找到内心深处存在的匮乏和阻碍,遇到自己不擅长的事,不执着,不对抗,平和的接纳自己的短板,或是努力去弥补短板,或是乐观的承认短板的存在,有针对性的完善自己,调整自己,做真实愉悦自在的自己。。

应用1在EXCEL中构建加载项

5Ribbon(功能区)的介绍

在Office的发展历程中,07版之前的版本,我们称之为低版本,到07版及之后我们称之为高版本,低版本中的菜单命令栏结构存在诸多不便,这就导致了在高版本Ribbon的诞生。

5e08d2225df65136b65019ea649e6fa1.jpeg

对EXCEL及WORD比较熟悉的朋友知道:在Ribbon中将命令按逻辑分组,将最常使用的命令放到用户最容易看到的地方且以最醒目的方式显示,将以前深藏的或难以找到的功能移到了界面上,大大增强了命令的可访问程度;Ribbon始终固定在屏幕上方,不能随意定制,因而界面是固定的,不会因某些操作而造成混乱。如果要定制Ribbon,则需要编程或第三方工具,且需要理解XML及其规则。

一般来说,大多数用户只使用了软件20%的功能,而这20%的功能对于特定的用户来说可能又各自不同,在Excel 2003中,我们可以根据自已的喜好自定义菜单和工具栏,方便自已使用最常用的功能。在Excel 2007中,如果不使用RibbonX,则只能在快速访问工具栏(QAT)中添加自已常用的命令。

由于不能随意定制,因此命令不总是能按照某人所需要的顺序随意排列。有时,实现一项任务可能需要花时间单击不同的选项卡,使用不同组中的命令。

其实我们在高版本的office中也可以实现自定义Ribbon,只是只能在设计时,而不是在运行时,通常不能动态添加选项卡、组或控件。同时我们也很容易移除定制的Ribbon,只要文档中不包含定制Ribbon的代码,都将恢复默认的Ribbon界面。而不像以前版本的Office,自定义菜单和命令栏后难以恢复,尤其对于新用户。并且,除了加载项、全局模板外,在某文档中的Ribbon定制不会影响新文档的Ribbon。

6自定义RibbonX(功能区)的实现

为了实现本专题加载项的要求我们要实现功能区的定制,这里我利用了一个Office RibbonX Editor的第三方软件来实现(这个软件会随教程提供),这里我只是列出实现本专题要求的代码部分,只是介绍,有兴趣的朋友可以通过其他途径学习。打开软件后,选择要自定义功能区的文件:

d3add11a82638fe2f3c7b230351cf327.jpeg

然后录入下面的代码:

                        getItemCount="mynzSheetToolsbtnSheets_Count"

                        getItemLabel="mynzSheetToolsbtnSheets_getItemLabel"

                        onAction="mynzSheetToolsbtnSheets_Click"

                        sizeString="MMMMMMMMM"

                        label="Sheets"

                        getSelectedItemIndex="mynzSheetToolsbtnSheets_getSelectedItemIndex"

                    />

                    label="Table Of Contents"

                    size="large"

                    onAction="mynzSheetToolsbtnInsertToc"

                    imageMso="CustomTableOfContentsGallery" />

代码截图:

65ae194d2ac474a4229788b439d2ca45.jpeg

最后保存。

代码的简单介绍:在这个xml中看到的项数是所谓的回调。这意味着Excel希望在相关工作簿中使用VBA代码。xml包含以下回调(callbacks):

①onLoad(加载工作簿时调用)

②getItemCount(返回下拉控件的项目数)

③getItemLabel(获取下拉列表的第n个项目)

④onAction(单击按钮或进行下拉选择时调用)

⑥GetSelectEditedIndex(调用以获取下拉列表中需要选择的项)

l在上述代码中有些复杂的过程名称(如“mynzpsheettoolsbtnssheets_Click”)。尤其是“mynzSheetTools”部分。在Excel实例中,回调名称必须是唯一的,是独一无二的。在Excel中打开的任何其他工作簿的子名称都不能与任何回调一致。否则,可能会导致其他工作簿中的例程被功能区调用!这就是为什么我在例程名称前面加上一些唯一标识包含RibbonX代码的工作簿前缀的原因。

我们要完成的各项任务罗列如下(这里只是罗列了任务,我们将在代码实现时填充代码):

Sub mynzSheetToolscustomUI_onLoad(ribbon As IRibbonUI)

End Sub

Sub mynzSheetToolsbtnInsertTOC(control As IRibbonControl)

End Sub

'Callback for mynzSheetToolsbtnSheets getItemCount

Sub mynzSheetToolsbtnSheets_Count(control As IRibbonControl, ByRef returnedVal)

End Sub

Public Sub mynzSheetToolsbtnSheets_getItemLabel(control As IRibbonControl, Index As Integer, ByRef returnedVal)

End Sub

'Callback for mynzSheetToolsbtnSheets getSelectedItemIndex

Sub mynzSheetToolsbtnSheets_getSelectedItemIndex(control As IRibbonControl, ByRef returnedVal)

End Sub

Sub mynzSheetToolsbtnSheets_Click(control As IRibbonControl, id As String, Index As Integer)

End Su

上面的代码将在功能区中添加一个“工作表工具”的任务,这个任务下面有一个选择工具和一个列表工具。

8b153357537b215c2d5089a441cc9915.jpeg

(待续)

d5c3d2789839ece794a77f09361ae322.jpeg

我20多年的VBA实践经验,全部浓缩在下面的各个教程中:


d8f7a7bfbe003a6e10a0d899ef80cf92.jpeg

336b26c338f1b027ccde6c718e2ca51f.jpeg

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/1260110.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

【Proteus仿真】【STM32单片机】感应水龙头设计

文章目录 一、功能简介二、软件设计三、实验现象联系作者 一、功能简介 本项目使用Proteus8仿真STM32单片机控制器,使用LCD1602液晶模块、HCSR04超声波等。 主要功能: 系统运行后,LCD1602显示超声波模块检测的距离,若检测距离小…

二十九、微服务案例完善(数据聚合、自动补全、数据同步)

目录 一、定义 二、分类 1、桶(Bucket)聚合: 2、度量(Metric)聚合: 3、管道聚合(Pipeline Aggregation): 4、注意: 参与聚合的字段类型必须是: 三、使用DSL实现聚合 聚合所必须的三要素: 聚合可配…

数字系列——数字经济

数字经济是全球经济未来发展方向,正在成为重组全球要素资源、重塑全球经济结构、改变全球竞争格局的关键力量。都知道数字经确实很重要,但有些人还傻傻搞不懂数字经济到底是什么?小编今天就给大家捋一捋。 什么是数字经济? 数字经…

tabs切换,组件库framework7

IOS和安卓兼容的背景下&#xff0c; 可以使用&#xff1a;framework7.io文档 效果展示&#xff1a; 代码&#xff1a; <!-- Top Tabs --> <div class"tabs tabs-top"><div class"tab tab1 active">...</div><div class"…

高级/进阶”算法和数据结构书籍推荐

“高级/进阶”算法和数据结构书籍推荐《高级算法和数据结构》 高级算法和数据结构 为什么要选择本书 谈及为什么需要花时间学算法&#xff0c;我至少可以列举出三个很好的理由。 (1)性能&#xff1a;选择正确的算法可以显著提升应用程序的速度。仅就搜索来说&#xff0c;用二…

jQuery_07 函数的使用

在jQuery中&#xff0c;如何使用函数呢&#xff1f; 1.基本函数 函数(常用的) 其实有很多函数&#xff0c;但是我们只需要掌握常用的函数即可 1.val 操作dom对象的value val() 没有参数 获取dom数组中第一个dom对象的value值 val(value) 有参数 设置dom数组中所有dom对象的…

毫米波雷达DOA角度计算-----DBF算法

DBF算法实现程序如下&#xff1a; 输入&#xff1a; parameter 是 毫米波雷达的参数设置。 antVec 是 目标点的8个虚拟天线的非相参积累数据。 function [angle,doa_abs] dbfMethod(parameter,antVec)txAntenna parameter.txAntenna; % 发射天线 [1 1]rxAntenna para…

使用功能点估算法进行估算,5大注意事项

功能点估算法在软件项目管理中起着重要的作用&#xff0c;其有助于项目的早期估算&#xff0c;更准确地预测项目成本和进度&#xff0c;有助于更好地理解项目规模&#xff0c;并做出相应的资源分配和进度安排。如果不使用此估算方法&#xff0c;可能会导致项目范围不清晰&#…

R语言期末考试复习二

上篇文章的后续&#xff01;&#xff01;&#xff01;&#xff01; http://t.csdnimg.cn/sqvYD 1.给向量vec1设置名为"A","B","C","D","E","F","G"。 2.将矩阵mat1的行名设置为"Row1"&#…

Unreal Engine 学习笔记 (4)—— 多方向动画

1.创建混合空间 1.设置水平方向命名为Direction表示行进方向 -45,300表示向左前方45度方向行走-90,300表示向正左方90度方向行走-135,300表示向左后方45度方向行走-180,300表示向正后方行走右侧方向动画与上述左侧使用同样方法设置Run动画与Walk动画使用同样方法设置 2. 设置…

【网安AIGC专题】46篇前沿代码大模型论文、24篇论文阅读笔记汇总

网安AIGC专题 写在最前面一些碎碎念课程简介 0、课程导论1、应用 - 代码生成2、应用 - 漏洞检测3、应用 - 程序修复4、应用 - 生成测试5、应用 - 其他6、模型介绍7、模型增强8、数据集9、模型安全 写在最前面 本文为邹德清教授的《网络安全专题》课堂笔记系列的文章&#xff0c…

基于注解配置的AOP

注解方式AOP基本使用 Spring的AOP也提供了注解方式配置&#xff0c;使用相应的注解代替之前的xml配置。 xml配置&#xff1a; <aop:config> <!-- 配置切入点 目的是指定哪些方法增强--><aop:pointcut id"myPointCut1" expression"execu…

智能优化算法应用:基于多元宇宙算法无线传感器网络(WSN)覆盖优化 - 附代码

智能优化算法应用&#xff1a;基于多元宇宙算法无线传感器网络(WSN)覆盖优化 - 附代码 文章目录 智能优化算法应用&#xff1a;基于多元宇宙算法无线传感器网络(WSN)覆盖优化 - 附代码1.无线传感网络节点模型2.覆盖数学模型及分析3.多元宇宙算法4.实验参数设定5.算法结果6.参考…

LeetCode-LeetCode-1137. 第 N 个泰波那契数 C/C++实现 超详细思路及过程[E]

&#x1f388;归属专栏&#xff1a;深夜咖啡配算法 &#x1f697;个人主页&#xff1a;Jammingpro &#x1f41f;记录一句&#xff1a;Good good study&#xff0c;day day up 文章目录 LeetCode-1137. 第 N 个泰波那契数&#x1f697;题目&#x1f686;题目描述&#x1f686;题…

基础课11——对话管理

智能客服的“对话管理”模块是一种智能学习算法&#xff0c;它通过学习和整理用户的历史对话记录&#xff0c;提高机器的对话回复效率和质量。 1.对话管理的模块 这个模块根据用户输入的内容&#xff0c;进行会话节点选择、会话状态迁移和维护等动作&#xff0c;模块内部可以…

解决Linux中文乱码、字体横向问题

解决Linux中文乱码问题 1、locale --查看当先系统编码集 2、echo $LANG --查看当前使用的语言 3、vim ~/.bash_profile --修改配置文件 4、加入以下语句 export LC_ALL"zh_CN.UTF-8" export LANG"zh_CN.UTF-8" 5、source ~/.bash_profile --更新配置文…

智能优化算法应用:基于缎蓝园丁鸟算法无线传感器网络(WSN)覆盖优化 - 附代码

智能优化算法应用&#xff1a;基于缎蓝园丁鸟算法无线传感器网络(WSN)覆盖优化 - 附代码 文章目录 智能优化算法应用&#xff1a;基于缎蓝园丁鸟算法无线传感器网络(WSN)覆盖优化 - 附代码1.无线传感网络节点模型2.覆盖数学模型及分析3.缎蓝园丁鸟算法4.实验参数设定5.算法结果…

面试常问-如何判断链表有环、?

如何判断链表有环 题目&#xff1a;解决方案一&#xff1a;解决方案二&#xff1a;解决方案三&#xff1a; 题目&#xff1a; 给你一个链表的头节点 head &#xff0c;判断链表中是否有环。 如果链表中有某个节点&#xff0c;可以通过连续跟踪 next 指针再次到达&#xff0c;…

小黑子—Git学习

Git分布式版本控制工具 一、 git概述1.1 简介1.2 下载和安装 二、 Git代码托管服务2.1 常用的Git代码托管服务2.2 使用GitHub代码托管服务2.3 使用码云代码托管服务 三、Git常用命令3.1 Git全局设置3.2 获取Git仓库3.3 工作区、暂存区、版本库概念3.4 git工作区文件中的状态3.5…

6、Qt使用Log4Qt日志

一、知识点 1、Log4Qt有三部分 logger&#xff1a;负责捕获日志信息 layout&#xff1a;负责使用不同的样式输出日志 appender&#xff1a;负责输出信息到不同的目的地&#xff0c;比如数据库、文件、控制台等等 2、 日志级别如下&#xff0c;从上往下依次递增 ALL&#xff1a;…