Excel CustomUI ribbon layout - excel

I'm trying to create a custom ribbon for excel with a group that looks like the image below. (2 rows of buttons with a dropdown box below).
I am beginning to think that it cant be done exactly how I'd like.
I have tried a few different ways (one of which is below) but they all result in the same output. 3 columns, 2x2 buttons with the dropdown box in the third column.
Does anyone know if this is possible?
<?xml version="1.0" encoding="UTF-8" standalone="yes"?>
<customUI onLoad="Ribbon.onLoad" xmlns="http://schemas.microsoft.com/office/2006/01/customui">
<ribbon>
<tabs>
<tab id="toolRibbon" label="redacted">
<group id="groupDocument" label="Secret Document">
<box id="z" boxStyle="vertical">
<box id="a" boxStyle="horizontal">
<box id="aa" boxStyle="vertical">
<button id="aaa" label="AAA" />
<button id="aab" label="AAB" />
</box>
<box id="ab" boxStyle="vertical">
<button id="aba" label="ABA" />
<button id="abb" label="ABB" />
</box>
</box>
<comboBox id="b" label="Looms">
<item id="ba" label="BA" />
<item id="bb" label="BB" />
<item id="bc" label="BC" />
</comboBox>
</box>
</group>
</tab>
</tabs>
</ribbon>
</customUI>

After looking through the available controls more thoroughly I found the buttonGroup which allows me to have buttons side-by-side.
Now to make them the right size..
<customUI xmlns="http://schemas.microsoft.com/office/2006/01/customui">
<ribbon>
<tabs>
<tab id="toolRibbon" label="redacted">
<group id="groupDocument" label="Specia; Document">
<buttonGroup id="a">
<button id="aa" label="AA"/>
<button id="ab" label="AB"/>
</buttonGroup>
<buttonGroup id="b" >
<button id="ba" label="BA"/>
<button id="bb" label="BB"/>
</buttonGroup>
<comboBox id="c" label="Looms">
<item id="ca" label="ca"/>
<item id="cb" label="cb"/>
<item id="cc" label="cc"/>
</comboBox>
</group>
</tab>
</tabs>
</ribbon>
</customUI>

Related

Excel 2010-2019 - Remove File menu items and add new Tabs in CustomUI

I would like to have CustomUI tabs and also remove File menu items in my xlsm file.
I have mu customUI tabs, however, while following example given here to remove File menu items my custom tabs disappear and also file menu items are not being disabled.
So, when I place the following xml in Custom UI Editor for Microsoft Office File menu items are disabled, however, my custom tabs do not appear any more:
<backstage>
<button idMso="FileSave" visible="false"/>
<button idMso="FileSaveAs" visible="false"/>
<button idMso="FileOpen" visible="false"/>
<button idMso="FileClose" visible="false"/>
<button idMso="ApplicationOptionsDialog" visible="false"/>
<button idMso="FileExit" visible="false"/>
<tab idMso="TabInfo" visible="false"/>
<tab idMso="TabRecent" visible="false"/>
<tab idMso="TabNew" visible="false"/>
<tab idMso="TabPrint" visible="false"/>
<tab idMso="TabShare" visible="false"/>
<tab idMso="TabHelp" visible="false"/>
</backstage>
Here's my xml structure :
<customUI xmlns="http://schemas.microsoft.com/office/2009/07/customui">
<backstage>
<button idMso="FileSave" visible="false"/>
<button idMso="FileSaveAs" visible="false"/>
<button idMso="FileOpen" visible="false"/>
<button idMso="FileClose" visible="false"/>
<button idMso="ApplicationOptionsDialog" visible="false"/>
<button idMso="FileExit" visible="false"/>
<tab idMso="TabInfo" visible="false"/>
<tab idMso="TabRecent" visible="false"/>
<tab idMso="TabNew" visible="false"/>
<tab idMso="TabPrint" visible="false"/>
<tab idMso="TabShare" visible="false"/>
<tab idMso="TabHelp" visible="false"/>
</backstage>
<ribbon startFromScratch="true">
<tabs>
<tab id="1" label="1" insertAfterMso="TabHome">
<group id="customGroupMain" label="Main">
------------------
</group>
</tab>
<tab id="2" label="2" >
<group id="customGroupResults" label="Results">
--------------
</group>
</tab>
</tabs>
</ribbon>
</customUI>
Maybe am placing the "backstage" in the wrong place? Can't figure it out.
Thanks for advise!
Resolved by adding "backstage" xml code after </ribbon>

Combining context menu with custom interface in Excel 365

I need to combine a custom ribbon with a context menu in an Excel file. I have been using custom ribbons and context menus with RibbonX separately for several years.
The code below doesn't seem to load either of them.
<customUI xmlns="http://schemas.microsoft.com/office/2009/07/customui">
<ribbon>
<tabs>
<tab id="MyCustomTab" label="Client Tool" insertAfterMso="TabTEAM">
<group id="customGroup1" label="Add">
<button id="customButton1" label="New Product" size="large" onAction="NewProduct" />
<separator id="MySeparator1" />
<button id="customButton2" label="New Column" size="large" onAction="NewColumn" />
</group>
</tab>
</tabs>
</ribbon>
<contextMenus>
<contextMenu idMso="ContextMenuCell">
<menu id="MySubMenu" label="Client Menu" insertBeforeMso="Cut" image="clientlogo" >
<button id="Menu1Button1" label="Set as Relevant"
imageMso="AppointmentColor0" onAction="UpperMacro"/>
<button id="Menu1Button2" label="Set as Irrelevant"
imageMso="AppointmentColor4" onAction="LowerMacro"/>
</menu>
<menuSeparator id="MySeparator" insertBeforeMso="Cut" />
</contextMenu>
</contextMenus>
</customUI>

Excel Custom UI Editor For Microsoft Office Resizable buttons

I am trying to create custom ribbon tab in Excel with resizable buttons, based on the size of the window. I am using Custom UI Editor For Microsoft Office. I would like that the buttons will change to small when I shrink Excel, like they do in other tabs. The code that I wrote in Custom UI Editor For Microsoft Office is below. Here size is defined as large. Is it possible to set it as auto so it will change automatically based on the size of the window?
<customUI xmlns="http://schemas.microsoft.com/office/2009/07/customui">
<ribbon>
<tabs>
<tab id="CustomTab" label="Custom Tab" insertAfterMso="TabView">
<group id="ImportRequestGroup" label="Import Requests" imageMso="Refresh">
<button id="RefreshButton" label="Refresh" size="large" onAction="RefreshAction" imageMso="Refresh" />
<button id="ImportRequestButton" label="Import Requests" size="large" onAction="ImportRequestAction" imageMso="OutlineDemoteToBodyText" />
</group>
<group id="ShowViewsGroup" label="Show views" imageMso="FrameCreateLeft">
<button id="ShowCalanderButton" label="Show Calander" size="large" onAction="ShowCalanderAction" imageMso="FrameCreateLeft" />
<button id="ViewPlanButton" label="View Plan" size="large" onAction="ViewPlanAction" imageMso="ViewFullScreenView" />
<button id="SortPlanButton" label="Sort Plan" size="large" onAction="SortPlanAction" imageMso="Bullets" />
<button id="FilterNoneButton" label="Filter none" size="large" onAction="FilterNoneAction" imageMso="FilterToggleFilter" />
<button id="HideAbsenceButton" label="Hide Absence" size="large" onAction="HideAbsenceAction" imageMso="CharacterBorder" />
</group>
<group id="ManageRowsGroup" label="Manage rows" imageMso="ActionInsertAccess">
<button id="InsertRowButton" label="Insert Row" size="large" onAction="InsertRowAction" imageMso="ActionInsertAccess" />
<button id="MoveToArchaveButton" label="Move to Archave" size="large" onAction="MoveToArchaveAction" imageMso="SourceControlCheckOut" />
</group>
<group id="EmailReportsGroup" label="Email reports" imageMso="ChangesDiscardAndRefresh">
<button id="CalculateDifferenceButton" label="Calculate Difference" size="large" onAction="CalculateDifferenceAction" imageMso="ChangesDiscardAndRefresh" />
<button id="DaysReminderButton" label="5 days Reminder" size="large" onAction="DaysReminderAction" imageMso="MailMergeStartEmail" />
</group>
<group id="ReportsGroup" label="Reports" imageMso="AcceptInvitation">
<button id="ApprovePlanButton" label="Approve Plan" size="large" onAction="ApprovePlanAction" imageMso="AcceptInvitation" />
<button id="Report14DaysButton" label="Report 14 days" size="large" onAction="Report14DaysAction" imageMso="ChooseForm" />
<button id="ReportTechnicianButton" label="Report Technician" size="large" onAction="ReportTechnicianAction" imageMso="CompareAndCombine" />
<button id="WeeklyViewButton" label="Weekly View" size="large" onAction="WeeklyViewAction" imageMso="GroupMarginsAndPadding" />
</group>
<group id="CheckDuplicatesGroup" label="Check duplicates" imageMso="OutlineUngroupMenu">
<button id="CheckEquipmenButton" label="Check Equipmen" size="large" onAction="CheckEquipmenAction" imageMso="OutlineUngroupMenu" />
<button id="CheckTechnicianButton" label="Check Technician" size="large" onAction="CheckTechnicianAction" imageMso="SharingOpenWssTaskList" />
</group>
<group id="SpotfireFilesGroup" label="Spotfire files" imageMso="Chart3DColumnChart">
<button id="SpotfirePlanAndArchiveButton" label="Spotfire Plan and Archive" size="large" onAction="SpotfirePlanAndArchiveAction" imageMso="Chart3DColumnChart" />
<button id="SpotfireRealizationReportButton" label="Spotfire Realization Report" size="large" onAction="SpotfireRealizationReportAction" imageMso="SharingOpenWssContactList" />
</group>
<group id="FormatingGroup" label="Formating" imageMso="AutoFormat">
<button id="ConditionalFormatingButton" label="Conditional Formating" size="large" onAction="ConditionalFormating" imageMso="AutoFormat" />
</group>
</tab>
</tabs>
</ribbon>
</customUI>
I tried to find the solution online with no luck.
Resizing custom controls is only available for Office 2010 and later. The functionality is somewhat limited for custom controls (as opposed to what Microsoft does with their own controls).
The capability can only be applied to group controls, not individual controls. The command is an attribute of the <group> tag. Example:
<group id="ImportRequestGroup" autoScale="true" label="Import Requests" imageMso="Refresh">
Microsoft Documentation reference:
https://learn.microsoft.com/en-us/previous-versions/office/developer/office-2010/ee691834(v=office.14)?redirectedfrom=MSDN#auto-scaling-of-custom-controls

How To Customize The Supertip Of An Excel Ribbon

I'm using the Custom UI Editor to customize my Excel ribbon with the following code:
<customUI xmlns="http://schemas.microsoft.com/office/2006/01/customui">
<ribbon startFromScratch="false">
<tabs>
<tab id="customTab" label="MyWorkbookTest">
<group id="customGroup1" label="Utilities">
<button id="customButton1" label="About" imageMso="ResultsPaneAccessibilityMoreInfo" size="large" supertip="View the framework version and status" onAction="ShowAbout" />
<button id="customButton2" label="Contact" imageMso="HyperlinkInsert" size="large" supertip="Launch the 'Contact Us' webpage" onAction="ShowContactUs" />
</group>
</tab>
</tabs>
</ribbon>
</customUI>
Can anyone tell me how to delete the part circled in red coming out automatically?
Result

Excel/RibbonUI menu disabled

Note The following problem was solved by creating a new workbook copying all the data, macros and other code across. Any insight into what causes a workbook to "break" would be welcome!
I have an excel file with a custom ribbonui. I've recently added a new group with a new menu, it (was) copied from the first group and certain items were removed.
The first group "library" and all its controls work as expected. The "documentmenu" menu in the "document" group however is grayed out and I cannot figure out why!
I've tried adding in a getEnabled and plain enabled attribute to the menu but it wont fire, neither will any of the getEnabled events for the menu's contained buttons.
When I open the ribbon for the first time the getLabel event does fire and sets the label correctly.
I've tried re-naming the group and all the controls to something without "document" in-case it's conflicting somehow, but again no go.
Does anyone know what might be causing this to happen?
Below is the entire customui xml file.
<?xml version="1.0" encoding="UTF-8" standalone="yes"?>
<customUI
onLoad="CustomUI.Ribbon_onLoad"
xmlns="http://schemas.microsoft.com/office/2009/07/customui">
<ribbon>
<tabs>
<tab
id="Main"
label="Initech">
<group
id="Library"
label="Library"
tag="Library"
centerVertically="true">
<menu
id="LibraryMenu"
tag="Library"
image="gear"
getLabel="CustomUI.Menu_getLabel">
<button
id="LibraryMenu_Open"
tag="Library"
label="Open Library"
imageMso="FileOpen"
getEnabled="CustomUI.Button_getEnabled"
onAction="CustomUI.Button_onAction" />
<button
id="LibraryMenu_New"
tag="Library"
label="New Library"
imageMso="FileNew"
getEnabled="CustomUI.Button_getEnabled"
onAction="CustomUI.Button_onAction" />
<menuSeparator
id="LibraryMenu_Separator0" />
<button
id="LibraryMenu_Save"
tag="Library"
label="Save"
imageMso="FileSave"
getEnabled="CustomUI.Button_getEnabled"
onAction="CustomUI.Button_onAction" />
<button
id="LibraryMenu_Close"
tag="Library"
label="Close"
imageMso="FileClose"
getEnabled="CustomUI.Button_getEnabled"
onAction="CustomUI.Button_onAction" />
<button
id="LibraryMenu_Default"
tag="Library"
label="Set as Default"
imageMso="AcceptInvitation"
getEnabled="CustomUI.Button_getEnabled"
onAction="CustomUI.Button_onAction" />
<menuSeparator
id="LibraryMenu_Separator1" />
<button
id="LibraryMenu_Add"
tag="Library"
label="Add Component"
getEnabled="CustomUI.Button_getEnabled"
onAction="CustomUI.Button_onAction" />
<button
id="LibraryMenu_Editor"
tag="Library"
label="Edit Menu"
getEnabled="CustomUI.Button_getEnabled"
onAction="CustomUI.Button_onAction" />
</menu>
<dynamicMenu
id="LibraryComponents"
tag="Library"
image="book_stack"
getLabel="CustomUI.Menu_getLabel"
getEnabled="CustomUI.Menu_getEnabled"
getContent="CustomUI.Menu_getContent" />
</group>
<group
id="Document"
label="Document"
tag="Document"
centerVertically="true">
<menu
id="DocumentMenu"
tag="Document"
imageMso="FileOpen"
getLabel="CustomUI.Menu_getLabel">
<button
id="DocumentMenu_Open"
tag="Document"
label="Open Document"
imageMso="FileOpen"
getEnabled="CustomUI.Button_getEnabled"
onAction="CustomUI.Button_onAction" />
<button
id="DocumentMenu_New"
tag="Document"
label="New Document"
imageMso="FileNew"
getEnabled="CustomUI.Button_getEnabled"
onAction="CustomUI.Button_onAction" />
<menuSeparator
id="DocumentMenu_Separator0" />
<button
id="DocumentMenu_Save"
tag="Document"
label="Save"
imageMso="FileSave"
getEnabled="CustomUI.Button_getEnabled"
onAction="CustomUI.Button_onAction" />
<button
id="DocumentMenu_Close"
tag="Document"
label="Close"
imageMso="FileClose"
getEnabled="CustomUI.Button_getEnabled"
onAction="CustomUI.Button_onAction" />
</menu>
</group>
</tab>
</tabs>
</ribbon>
</customUI>
Update after hours of playing about trying to figure out whats going on, turns out my workbook is damaged some how. The code works fine if I put it into a new workbook.
centerVertically is not a valid property.
Kindly refer this link
getEnabled="CustomUI.Button_getEnabled" & onAction="CustomUI.Button_onAction"
Avoid period . in name of callback function as we cannot define a sub/function like CustomUI.Button_getEnabled.
3 when using getEnabled attribute for a button a callback function is to be called when the application needs to determine the enabled state of the button.
sample code - getEnabled for ribbion

Resources