建设银行u盾官方网站首页,做网站原则,有赞小程序登录入口,wordpress阿里云图片不显示不出来《VBA高级应用30例》#xff08;版权10178985#xff09;#xff0c;是我推出的第十套教程#xff0c;教程是专门针对高级学员在学习VBA过程中提高路途上的案例展开#xff0c;这套教程案例与理论结合#xff0c;紧贴“实战”#xff0c;并做“战术总结”#xff0c;以…《VBA高级应用30例》版权10178985是我推出的第十套教程教程是专门针对高级学员在学习VBA过程中提高路途上的案例展开这套教程案例与理论结合紧贴“实战”并做“战术总结”以便大家能很好的应用。教程的目的是要求大家在实际工作中分发VBA程序写好的程序可以升级。
本套教程共三册三十个专题VBA高级应用30例Ribbon功能区的介绍
【分享成果随喜正能量】面对不擅长的事不要死磕接纳自己有力所不及的地方。接纳并理解生命的局限性也正是因为有局限我们才有了成长的空间找到内心深处存在的匮乏和阻碍遇到自己不擅长的事不执着不对抗平和的接纳自己的短板或是努力去弥补短板或是乐观的承认短板的存在有针对性的完善自己调整自己做真实愉悦自在的自己。。 应用1在EXCEL中构建加载项
5Ribbon功能区的介绍
在Office的发展历程中07版之前的版本我们称之为低版本到07版及之后我们称之为高版本低版本中的菜单命令栏结构存在诸多不便这就导致了在高版本Ribbon的诞生。 对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的第三方软件来实现这个软件会随教程提供这里我只是列出实现本专题要求的代码部分只是介绍有兴趣的朋友可以通过其他途径学习。打开软件后选择要自定义功能区的文件 然后录入下面的代码 nbsp;nbsp;nbsp;nbsp;nbsp;nbsp;nbsp;nbsp;nbsp;nbsp;nbsp;nbsp;nbsp;nbsp;nbsp;nbsp;nbsp;nbsp;nbsp;nbsp;nbsp;nbsp;nbsp;nbsp;getItemCountmynzSheetToolsbtnSheets_Count
nbsp;nbsp;nbsp;nbsp;nbsp;nbsp;nbsp;nbsp;nbsp;nbsp;nbsp;nbsp;nbsp;nbsp;nbsp;nbsp;nbsp;nbsp;nbsp;nbsp;nbsp;nbsp;nbsp;nbsp;getItemLabelmynzSheetToolsbtnSheets_getItemLabel
nbsp;nbsp;nbsp;nbsp;nbsp;nbsp;nbsp;nbsp;nbsp;nbsp;nbsp;nbsp;nbsp;nbsp;nbsp;nbsp;nbsp;nbsp;nbsp;nbsp;nbsp;nbsp;nbsp;nbsp;onActionmynzSheetToolsbtnSheets_Click
nbsp;nbsp;nbsp;nbsp;nbsp;nbsp;nbsp;nbsp;nbsp;nbsp;nbsp;nbsp;nbsp;nbsp;nbsp;nbsp;nbsp;nbsp;nbsp;nbsp;nbsp;nbsp;nbsp;nbsp;sizeStringMMMMMMMMM
nbsp;nbsp;nbsp;nbsp;nbsp;nbsp;nbsp;nbsp;nbsp;nbsp;nbsp;nbsp;nbsp;nbsp;nbsp;nbsp;nbsp;nbsp;nbsp;nbsp;nbsp;nbsp;nbsp;nbsp;labelSheets
nbsp;nbsp;nbsp;nbsp;nbsp;nbsp;nbsp;nbsp;nbsp;nbsp;nbsp;nbsp;nbsp;nbsp;nbsp;nbsp;nbsp;nbsp;nbsp;nbsp;nbsp;nbsp;nbsp;nbsp;getSelectedItemIndexmynzSheetToolsbtnSheets_getSelectedItemIndex
nbsp;nbsp;nbsp;nbsp;nbsp;nbsp;nbsp;nbsp;nbsp;nbsp;nbsp;nbsp;nbsp;nbsp;nbsp;nbsp;nbsp;nbsp;nbsp;nbsp;/ nbsp;nbsp;nbsp;nbsp;nbsp;nbsp;nbsp;nbsp;nbsp;nbsp;nbsp;nbsp;nbsp;nbsp;nbsp;nbsp;nbsp;nbsp;nbsp;nbsp;labelTable Of Contents
nbsp;nbsp;nbsp;nbsp;nbsp;nbsp;nbsp;nbsp;nbsp;nbsp;nbsp;nbsp;nbsp;nbsp;nbsp;nbsp;nbsp;nbsp;nbsp;nbsp;sizelarge
nbsp;nbsp;nbsp;nbsp;nbsp;nbsp;nbsp;nbsp;nbsp;nbsp;nbsp;nbsp;nbsp;nbsp;nbsp;nbsp;nbsp;nbsp;nbsp;nbsp;onActionmynzSheetToolsbtnInsertToc
nbsp;nbsp;nbsp;nbsp;nbsp;nbsp;nbsp;nbsp;nbsp;nbsp;nbsp;nbsp;nbsp;nbsp;nbsp;nbsp;nbsp;nbsp;nbsp;nbsp;imageMsoCustomTableOfContentsGallery / 代码截图 最后保存。 代码的简单介绍在这个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 上面的代码将在功能区中添加一个“工作表工具”的任务这个任务下面有一个选择工具和一个列表工具。 待续 我20多年的VBA实践经验全部浓缩在下面的各个教程中