03版本的excel筛选(高版本Excel的自定义菜单)
【分享成果,随喜正能量】删繁就简,至简至欢。人生是一个做减法的过程,该放弃的放弃,该远离的远离。做一个冷淡的人,把热情放在该珍惜的人身上;做一个“死心眼”的人,把精力放到值得做的事情上。。
VBA技术工具是我根据我的多年经验,并结合一些需求推出多项工具。这些工具分为YZ系列和NZ系列。YZ系列比较容易,一般可以通过教程中的代码组合自己也可以容易的写出;NZ系列则比较困难些,需要一定的VBA技术能力可以得到。这些工具只对学员,不对外。
对于NZ系列工具,分为开放源码和不开放源码两种。如果您按照我的教程学习到了高级阶段,那么恭喜您,可以直接得到NZ系列不开放源码的工具,我一般是把这些集成在一个加载项中,您可以直接使用。今日给大家介绍的这个系列的YZ03应用工具,内容是高版本Excel的自定义菜单:
YZ03高版本Excel的自定义菜单
当我们在 Excel 97-2003 中使用 Application.CommandBars 创建菜单时,可以利用创建菜单和删除菜单的代码。在 Excel 2007 及更高版本中,我们可以使用 RibbonX 自定义功能区,这和上述过程是不同的,当关闭或停用工作簿时,它将自动删除我们的自定义。
Office RibbonX 编辑器为我们提供了用于在 Excel 工作簿中插入自定义功能菜单的功能(备注:Office RibbonX 编辑器的安装文件会随资料附带,学员可以安装;另外,在我的第10套教程中也提供了这个安装文件),在 Excel 2007 及更高版本中打开文件时为UI.xml文件,在 Excel 2010 及更高版本中打开 Excel 工作簿时为customUI14.xml 文件。
如果只使用 Office 2007自定义 UI 部件选项来添加 RibbonX,当在Excel 2007 及更高版本中打开Excel文件时,它将从此文件加载RibbonX。但是,如果在Excel2010及更高版本中打开Excel文件,并且还有一个customUI14.xml文件,它将仅加载customUI14.xml文件。
注意:无法将 RibbonX 插入到 Excel 97-2003(xls) 文件中。我们这个应用所讲解的也是仅针对97及以后的版本。
一 Open the Office RibbonX Editor功能简介
我们先来简单介绍一下这个软性的功能,这个软件在这个应用中我已经提供,另外在我的第十套教程中随教程也已经提供,大家可以利用。
1 打开命令:打开要编辑的 Excel 文件(确保它没有在 Excel 中打开)
2 保存命令:将 RibbonX 保存在您在 UI 编辑器中打开的文件中(在 Excel 中打开文件时无法保存)
3 插入图标:在文件中插入您自己的图标(图标将保存在文件中)
4 验证:验证您的 RibbonX,以确保没有错别字
5 生成回调:这将为您RibbonX的每个 onAction 创建宏(回调)。 选择所有回调并将它们复制到工作簿的普通模块中。
6 刷新文档:如果您在 Excel 中打开了文件,为确保您不会删除在外部打开的 Excel 文件中所做的更改,请在保存文档之前使用按钮重新加载文档。
二 创建自定义菜单示例在此示例中,我们将 RibbonX 添加到文件中,在 Excel 2007 及更高版本中打开文件时,该文件会在“主页”选项卡上创建一个按钮。我们将 RibbonX 添加到 customUI.xml文件(“Office 2007 自定义 UI 部分”)。
1:打开一个新工作簿并将其另存为myExcel.xlsm(启用 Excel 宏的工作簿)
2:关闭工作簿
3:在 Office RibbonX 编辑器中打开 myExcel.xlsm
4:右键单击 Office RibbonX 编辑器中的文件名或使用插入菜单
5:选择“Office 2007 Custom UI Part”创建customUI.xml文件
6:将下面的RibbonX粘贴到右侧窗口中
<customUI xmlns="http://schemas.microsoft.com/office/2006/01/customui">
<ribbon>
<tabs>
<tab idMso="TabHome" >
<group id="customGroup1" label="My Group" insertAfterMso="GroupEditingExcel">
<button id="customButton1" label="Click Me" size="large"
onAction="Macro1" imageMso="HappyFace" />
</group>
</tab>
</tabs>
</ribbon>
</customUI>
7:在 Office RibbonX 编辑器中保存您的更改(单击保存按钮)
8:关闭编辑器
9:在 Excel 中打开文件
10:Alt F11(要记住这个快捷键,在后文中屏蔽菜单时,可以用这个快捷键进入VBE)
11:插入模块
12:将下面的宏复制到模块中
Sub Macro1(control As IRibbonControl)
MsgBox "Hi There"
End Sub
13:点击VBA编辑器中的保存按钮
14:使用 Alt Q 关闭 VBA 编辑器
15:在 2007 年和/或 2010 年及以上测试工作簿
三 在内置选项卡中添加自定义组
实现这个功能是我提供的myExcelA.XLSM文件,正确加载后,会在“主页”选项卡的末尾看到一个新组“Group1”,如下截图:
我们点击任意一个按钮会有下面的提示:
如果我们用Office RibbonX 编辑器打开该文件,我们会看到自定义RibbonX的 CustomUI。
因为此示例中的 RibbonX for Excel 2007 和 Excel 2010-2016 之间没有区别。我们只能为我们的 RibbonX 使用 customUI.xml 文件。Excel 2010-2016 打开文件时如果没有 customUI14.xml 文件,它会从 customUI.xml 文件加载 RibbonX。
如果我们要利用这个自定义RibbonX,可以在标准模块代码中修正我们的代码,我一共给出了8个命令,可以供用户添加与修正。
四 自定义收藏组按钮的选项卡实现这个功能的是我提供的myExcelB.xlsm文件,如果加载正确,会在主页选项卡旁边看到一个新选项卡“个人收藏”。如下截图:
如果我们用Office RibbonX 编辑器打开该文件,我们会看到自定义RibbonX的 CustomUI。
因为此示例中的 RibbonX for Excel 2007 和 Excel 2010-2016 之间没有区别。我们只能为我们的 RibbonX 使用 customUI.xml 文件。Excel 2010-2016 打开文件时如果没有 customUI14.xml 文件,它会从 customUI.xml 文件加载 RibbonX。
五 添加自定义选项卡实现这个功能的是我提供的myExcelC.xlsm文件,如果加载正确,会在主页选项卡旁边看到一个新选项卡“我的菜单”。如下截图:
菜单中我提供了8个过程可以供给用户添加。
如果我们用Office RibbonX 编辑器打开该文件,我们会看到生成自定义RibbonX的 CustomUI。
因为此示例中的 RibbonX for Excel 2007 和 Excel 2010-2016 之间没有区别。我们只能为我们的 RibbonX 使用 customUI.xml 文件。Excel 2010-2016 打开文件时如果没有 customUI14.xml 文件,它会从 customUI.xml 文件加载 RibbonX。
六 屏蔽所有内置选项卡实现这个功能的是我提供的myExcelD.xlsm文件,如果加载正确,当我们打开文件时,会看到如下截图:
是不是非常的干净,此时所有内置功能区选项卡和 QAT(间备注解释) 在 2007 或 2010-2016 消失。
并且在 2007 的 Office 按钮菜单中,只会看到“最近的文档”,在 Excel 2010-2016 中,如果没有使用 RibbonX 添加控件的加载项,则为空。
如果用CustomUI 编辑器中打开文件,会看到 Excel 2007 的 customUI.xml 的 RibbonX及 Excel 2010-2016 的 customUI14.xml RibbonX。
如果在 Excel 2007 中打开文件,它会从 customUI.xml 加载 RibbonX,如果在Excel 2010-2016 它将从 customUI14.xml 文件加载 RibbonX。
备注:QAT:Quick Access Toolbar 快速访问工具栏
七 使用定制的菜单标签实现这个功能的是我提供的myExcelE.xlsm文件,如果加载正确,当我们打开文件时,会看到如下截图:
当我们点击“Caption”命令:
这对于我们利用EXCEL作为开发主界面,是不是非常的方便呢?
这个程序如果正确加载,所有内置功能区选项卡和 QAT 在 2007或 2010-2016消失,并且在 2007 的 Office 按钮菜单中,您只会看到“最近的文档”,在 Excel 2010-2016 Backstage (File) 中,如果没有使用 RibbonX 添加控件的加载项,则为空。Backstage(File) 没有“startFromScratch”选项,以确保所有内容都像功能区一样隐藏。
如果在 CustomUI 编辑器中打开文件,会看到Excel 2007 的 customUI.xml 文件的 RibbonX以及Excel 2010-2019中 的 customUI14.xml 的 RibbonX。
此文件如果在 Excel 2007 中打开,它会从 customUI.xml 加载 RibbonX,如果在
Excel 2010-2016打开它将从 customUI14.xml 文件加载 RibbonX。
八 对选项卡命令的屏蔽这个应用中我给出了选项卡命令的屏蔽方案,实现这个功能的是我提供的myExcelF.xlsm文件,我们先看一下正常一个文件打开的主页选项卡:
如果myExcelF.XLSM加载正确,当我们打开文件时,会看到如下截图:
是的,这个作用是屏蔽了一些命令。在 Excel 2007-2016 中,它禁用 Office 按钮中的“另存为”按钮;禁用主页选项卡上对齐组中的“合并单元格”菜单;隐藏了功能区中的“插入”选项卡;隐藏了主页选项卡上的“字体组”。而且,在“主页”选项卡上单击“粘贴”时正确,它将在此工作簿中运行宏“MyPasteMacro”
如果在 CustomUI 编辑器中打开文件,会看到 Excel 2007 的 customUI.xml 文件中的 RibbonX及 Excel 2010-2016 中 customUI14.xml的 RibbonX。
如果在 Excel 2007 中打开文件,它会从 customUI.xml 加载 RibbonX,如果在
Excel 2010-2016 它将从 customUI14.xml 文件加载 RibbonX。
当然这个应用只是屏蔽了部分按钮给大家一个实例,学员可以根据自己的需要进行必要的开发。
【分享成果,随喜正能量】
我20多年的VBA实践经验,全部浓缩在下面的各个教程中:
【分享成果,随喜正能量】追梦不分早晚,青春没有期限。梦想,没有任何界限,只关乎你心中发愿,和有力的行动,无关乎其他。。
,免责声明:本文仅代表文章作者的个人观点,与本站无关。其原创性、真实性以及文中陈述文字和内容未经本站证实,对本文以及其中全部或者部分内容文字的真实性、完整性和原创性本站不作任何保证或承诺,请读者仅作参考,并自行核实相关内容。文章投诉邮箱:anhduc.ph@yahoo.com