excelperfect 正如本系列前面讲解的那样,要在功能区中添加自定义控件,通常要经过两个步骤: 1.使用编辑器打开Excel工作簿文件,编辑其XML文件,添加想要的功能区界面元素。...2.在Excel中打开工作簿,开启VBE添加代码,以实现添加的控件的功能。 本文介绍在功能区中添加自定义的编辑框控件。...新建一个启用宏的工作簿并保存,关闭该工作簿,然后在CustomUI Editor中打开该工作簿,输入下面的XML代码: ?...打开该工作簿,在标准VBA模块中输入下面的代码: 'Callback for EditBox1 onChange Sub EditBox1_onChange(control As IRibbonControl...说明:本专题系列大部分内容学习整理自《Dissectand Learn Excel VBA in 24 Hours:Changingworkbook appearance》,仅供学习研究。
如果列之间的连接符Tab和行之间的连接符换行符可以自定义就好了,那么,我们来实现这么一个复制的功能: ?...首先在customUI.xml中增加代码: <editBox...Next '将列单元格的Text连接起来,并存放到arrStr中 arrStr(iRow) = VBA.Join...文件夹里的vbapFunc.xlam里,然后常用功能加载宏通过工具-引用来使用这个文件: Sub SetClipText(str As String) Dim objData As Object
下面展示的是执行不在功能区中的命令的另一个示例: '启动计算器程序 Application.CommandBars.ExecuteMso "Calculator" 接下来的示例执行功能区中的命令,它们通过功能区控件图形化呈现...XML和VBA代码(Excel 2010及以后的版本) 激活功能区选项卡的另一种方法是使用XML和VBA代码。执行下列步骤: 1. 下载CustomUI Editor并安装。 2....复制并粘贴下面的XML代码: onLoad是一个回调属性,有一个VBA过程的名称赋给它,本例中的过程命名为Initialize,当打开工作簿时调用此过程。...使用对功能区的引用,可以接着通过myRibbon对象激活功能区选项卡(以及使功能区中的选项卡和控件无效)。 12. 保存,关闭,然后重新打开该工作簿。
excelperfect 本文是前面一系列文章的综合,前面每篇文章讲解如何在功能区中添加一类自定义控件,本文讲解如何将在功能区中同时添加这些控件。...添加该控件的步骤与前面文章介绍的相同,新建一个启用宏的工作簿并保存,关闭该工作簿,然后在CustomUI Editor中打开该工作簿,输入下面的XML代码: ? ? ? ? ? ?...在Excel中打开该工作簿,然后打开VBE,插入一个标准的VBA模块,输入下面的代码: 'Callback for button1 onAction Sub Macro1(control As IRibbonControl...onChange Sub EditBox1_onChange(control As IRibbonControl, text As String) On Error Resume Next...说明:本专题系列大部分内容学习整理自《Dissectand Learn Excel VBA in 24 Hours:Changingworkbook appearance》,仅供学习研究。
写入custom.xml步骤: 从Excel中读取数据并转换为xml格式的文本 然后转换编码 使用类模块CPKZip的功能,将custom.xml写入(CPKZip的写入功能下次介绍) 这里需要注意的是...'判断是否存在CUSTOMUI_NAME,不存在的情况下还要更新rel Dim fs() As String fs = zip.Files() Dim i As...<Relationship Id="VBAPKZIP" Type="http://schemas.<em>microsoft</em>.com/office/2006/relationships/ui/extensibility...=""VBAPKZIP"" Type=""http://schemas.microsoft.com/office/2006/relationships/ui/extensibility"" Target...Exit Sub End If End If '添加customUI.xml ret = zip.AddFile(CUSTOMUI_NAME, bUTF8
标签:VBA,自定义功能区 在《自定义功能区示例:创建用于工作表导航的下拉列表》、《自定义功能区示例:创建用于工作表导航的动态组合框》中,我们在Excel功能区中添加一个自定义的选项卡,然后再该选项卡中添加带有下拉列表或组合框的一个自定义组...可以作为自定义功能区的模板参考。...: ...> 验证无误后,保存并关闭Custom UI Editor for Microsoft Office。...ToggleManualTasksColor(control As IRibbonControl) MsgBox "Assembly Units" End Sub 保存并关闭该工作簿,然后重新打开该工作簿,即可以看到更新后的自定义功能区界面
标签:VBA,用户界面 本文接上篇文章: 在Excel中自定义上下文菜单(上) 使用RibbonX将控件添加到单元格上下文菜单 在下面的示例中,将创建与上文描述的示例相同的按钮和子菜单,但使用RibbonX...5.在Custom UI Editor中输入下面的XML: ...,查看单元格上下文菜单是否已更改。... " & _ "<button id=""but1"" imageMso=""Help"" label=""帮助"" onAction=""HelpMacro
对于Office 2010-2016的xmlns属性的命名空间如下: xmlns=http://schemas.microsoft.com/office/2009/07/customui 5.选择“Insert...| Sample XML | Custom Tab”,作一些修改,或者复制并粘贴下列XML代码,在功能区“开始”选项卡中的“剪贴板”组之后添加包含两个内置控件的一组标签Fav。... ...注意到,这是对特定文档进行功能区定制,即仅包含XML代码的工作簿显示定制的功能区,当关闭该工作簿时,自动移除功能区中的定制。...重复上文介绍的自定义功能区的5个步骤,但在第5步中输入下面的XML代码: ? ? buttonGroup元素用于水平地排列一组按钮。
标签:VBA,自定义功能区 在Excel工作表中,选取工作表中的图片,单击右键,会弹出一个与操作图片相关的快捷菜单,有时候,我们想在这个快捷菜单中添加自定义的按钮,如下图1所示,如何做到呢?...图1 首先,打开工具Custom UI Editor for Microsoft Office,然后打开想要自定义图片右键快捷菜单的工作簿,在其中输入下面的XML代码: </customUI...图2 验证代码无错误后,保存并关闭Custom UI Editor for Microsoft Office。
标签:VBA,自定义功能区 我们可以自定义功能区,在上面设置我们想要的功能,从而方便我们对工作表或工作簿的操作。...本文的示例如下图1所示,在功能区中添加一个自定义的选项卡,然后再该选项卡中添加带有下拉列表的一个自定义组,用于从下拉列表中选择工作表,从而快速导航到该工作表,这对于工作簿中有大量工作表且要快速找到相应的工作表的用户来说...图1 假设该工作簿名称为CustomUIDropdown.xlsm,使用Custom UI Editor for Microsoft Office打开该工作簿,在其中输入代码: ...End Sub Sub RibbonOnLoad(ribbon As IRibbonUI) Set Rib = ribbon End Sub 保存并关闭该工作簿,然后重新打开该工作簿,即可以看到更新后的自定义功能区界面
文件;在images文件夹里面添加需要用的图标;文件结构见下图; customUI.xml.rels文件内容:用于添加图标路径 - - vba代码: ''微信公众号:VB小源码 Public
excelperfect 在自定义功能区时,我们可以插入图像到自定义库中,图像文件的类型可以是ico、bmp、png、jpg和tif。 要给自定义功能区选项卡添加库控件,执行下列步骤: 1....如果选择Office 2010 Custom UI Part,只需使用下列代码替换xmlns属性的命名空间: 4....VBA过程如下: 'Callback for customUI.loadImage Sub LoadImage(imageID As String, ByRef returnedVal) Set...自定义功能区\13\" & imageID) 'msgbox ImageName End Sub 该过程遍历XML代码中的每个item元素,查找图像的文件名并获取图像装载到库控件。
标签:VBA,自定义功能区 在《自定义功能区示例:创建用于工作表导航的下拉列表》中,我们在Excel功能区中添加一个自定义的选项卡,然后再该选项卡中添加带有下拉列表的一个自定义组,用于从下拉列表中选择工作表...图1 假设该工作簿名称为CustomDynamicCombobox.xlsm,使用Custom UI Editor for Microsoft Office打开该工作簿,在其中输入代码: 验证无误后,保存并关闭Custom UI Editor for Microsoft Office。...Workbook_SheetDeactivate(ByVal Sh As Object) RefreshAddInsRibbon End Sub 保存并关闭该工作簿,然后重新打开该工作簿,即可以看到更新后的自定义功能区界面
读取custom.xml步骤: 使用类模块CPKZip的功能,将custom.xml读取并解压 然后转换编码 再使用类模块CXML对数据进行处理 最后输出到Excel Private Const CUSTOMUI_NAME...As String = "customUI/customUI.xml" '从ZIP文件中读取customUI.xml Sub ReadCustomUI() If VBA.Len(FileName...ret = zip.UnZipFile(CUSTOMUI_NAME, b) If ret = "zip: ZIP文件中不存在的文件:customUI/customUI.xml" Then...'不存在的时候插入一个默认模板 If MsgBox("文件中没有customUI.xml,是否插入一个模板?"..., vbYesNo) = vbYes Then sXML = "<customUI xmlns=""http://schemas.microsoft.com/office/2006
excelperfect 有时候,我们可能想根据用户在工作表中的选择来决定隐藏或者显示功能区选项卡中的特定组,避免用户随意使用某些功能而破坏我们的工作表结构。 下面,我们通过一个示例来演示。...我们想让用户选择工作表列B中的任意单元格时,隐藏“开始”选项卡中的“剪贴板”组,而当用户选择其他单元格时,该组又重新显示,如下图1所示。 ?...然后,使用自定义UI工具打开该工作簿,输入如下所示的XML代码: <customUI xmlns="http://schemas.microsoft.com/office/2006/01/customui"onLoad...图2:在Custom UI Editor For Microsoft Office中编辑输入XML 重新打开工作簿,按Alt+F11键打开VBA编辑器,插入一个标准模块,输入下面的代码: Public...rxIRibbonUI As IRibbonUI Public bln As Boolean 'Callback for customUI.onLoad Sub Initialize(ribbon
excelperfect 在《VBA实战技巧19:根据用户在工作表中的选择来隐藏/显示功能区中的剪贴板组》中,我们讲解了根据用户在工作表中的选择来决定隐藏或者显示功能区选项卡中的特定组的技术。...例如,当用户选择工作表Sheet1列A中的单元格时,不能执行复制、剪切、粘贴操作,同样在选择工作表Sheet2中B2:B15区域时和工作表Sheet3中的列B、列C中的单元格时,也不能执行复制、剪切、粘贴操作...然后,使用自定义UI工具打开该工作簿,输入如下所示的XML代码: <customUI xmlns="http://schemas.microsoft.com/office/2006/01/customui"onLoad...图2:在Custom UI Editor For Microsoft Office中编辑输入XML 重新打开工作簿,按Alt+F11键打开VBA编辑器,插入一个标准模块,输入下面的代码: Public...'禁用列A的复制粘贴功能 If blnRange(rng, Columns("A:A")) Then Call ToggleCutCopyPaste
MyVBA加载宏主要功能是设置为自动加载,作为打开其他宏文件的一个程序,做好后大概是这么一个东西: ?...编辑Ribbon界面: 创建一个下拉菜单,这个菜单能够将MyVBA加载宏同路径下面所有后缀为.xlsm和.xlam的文件都添加为子菜单,点击自动打开相应的宏文件,Ribbon菜单代码: <tab idMso="TabDeveloper...xml代码 content = "" & vbNewLine...fso = Nothing Exit Function err_handle: ScanDir = -1 End Function 到此MyVBA加载宏创建完成,后续将不断添加具有功能的加载宏
学习Excel技术,关注微信公众号: excelperfect 添加按钮控件 假设你需要对工作表中前面有货币符号的值执行计算,然而那些值被解释为文本,你要编写VBA过程来移除所选单元格区域中的货币符号。...在标准的VBA模块中的过程: Sub RemoveUSD(control As IRibbonControl) Dim workRng As Range Dim Item As Range...Item = Right(Item, Len(Item) -3) End If Next Item End If End Sub 在功能区...《VBA专题10-23:使用VBA操控Excel界面之添加动态菜单》一文中,当用户激活不同的工作表时,在Workbook_SheetActivate事件处理中明确地使菜单无效(为了重新构建菜单)。...然而,使用VBA代码实现添加控件仍然是可能的。
例如,下面的示例XML代码和在标准VBA模块中的代码在运行时满足某条件时隐藏(和取消隐藏)“对齐方式”组: ? customUI元素包括带有Initialize回调过程的onLoad属性。...在Excel 2010及之后的版本中,InvalidateControlMso方法仅使“对齐方式”组无效。在Excel 2007中,Invalidate方法使功能区无效。...隐藏“开始”和“数据”选项卡的功能区如下图所示: ? 虽然选项卡中的控件被隐藏,但仍然可以通过快捷键组合和上下文菜单执行它们底层的命令。...功能区的所有选项卡都被隐藏,如下图所示: ? 虽然所有的内置选项卡都被隐藏,但仍然可以通过快捷键组合、上下文菜单和上下文选项卡访问内置控件。...在标准VBA模块中的VBA代码: Public myRibbon As IRibbonUI 'Callback for customUI.onLoad Sub Initialize(ribbon As
下面的一系列文章将重点讲解如何在功能区中添加不同类型的自定义控件,它们与最底层的自定义命令相关。这里的自定义命令是指程序员自已编写的VBA过程。...添加按钮 如果要在内置功能区选项卡中添加两个按钮,在单击这些按钮时会调用VBA过程,那么执行下面的步骤: 1. 创建新工作簿并保存为启用宏的工作簿。 2....组元素: group元素中label属性的值指定功能区中组显示的文本。 按钮元素: 其imageMso属性为按钮指定预定义的图像。...在Insert0回调过程中的参数control有3个属性: ID:在XML代码中指定的控件的id。 Context:包含该功能区的活动窗口。...下图展示在功能区的“插入”选项卡出现了含有两个按钮的Attn Sh组。 ?
领取专属 10元无门槛券
手把手带您无忧上云