An overhauled fork of the original Custom UI Editor for Microsoft Office, built with WPF
An overhauled fork of the original Custom UI Editor for Microsoft Office, built with WPF
The Office RibbonX Editor is a standalone tool to edit the Custom UI part of Office open document file format. It contains both Office 2007 and Office 2010 custom UI schemas.
The Office 2010 custom UI schema is the latest schema and it's still being used in the latest versions of Office including Office 2019, Office 2021 and Office 365.
To learn more about how to use these identifiers to customize the Office ribbon, backstage, and context menus visit:
This GitHub project is a fork of Custom UI Editor for Microsoft Office. Built on Windows Forms, the original editor by Microsoft is useful on its own, but it has some limitations. Rather than trying to address those limitations by performing small contributions to the original project, this repo offers a complete redesign of the project in Windows Presentation Foundation (WPF).
Features of this overhauled editor include:
Reload on Save option that avoids losing any external changes (for more info, see the section below)To download the latest release, go to the following link:
https://github.com/fernandreu/office-ribbonx-editor/releases/latest
To download the latest pre-release, go to the full list of releases on GitHub:
https://github.com/fernandreu/office-ribbonx-editor/releases
Note: From v2.0 onwards, .NET Framework is no longer supported. The latest .NET Framework version is v1.9 and can be found here.
Reload on Save option work?An Office 2007+ file (.xlsm, .xlam, .pptm, .docx, etc.) is nothing more than a .zip file with a
custom extension. When the Office RibbonX Editor opens one of those files, it unzips it into a temporary
location first, and then it shows the content from there. To save the file, it will apply any changes to
the unzipped files, and zip everything back to its original location.
The way you would use the original Custom UI Editor is similar to the following:
However, what would happen if you forget Step 1 and Excel has the same file open when you are using the tool? Your workflow could then look like this instead:
of the Excel file that did not include the changes saved in Step 3!
The Reload on Save button adds an extra step to the process as a safety precaution in this scenario. In
essence, Step 4 will no longer use the temporary unzipped copy of the Excel file that was generated in Step 1,
but will generate a new one instead. As a consequence, any external changes you might have done in the meantime
(i.e. Step 3) will no longer get lost. If you did not make any external changes, the Reload on Save button
won’t have any noticeable impact for you.
The tool is no longer being signed using a certificate from a trusted root certification authority. Instead, each build now uses a temporary, unique code signing certificate. Those will be signed using the following self-signed certificate:
github.com/fernandreu62530bc980ec95d70a9a0abf931a4c28877ef4c6This will give issues with Microsoft SmartScreen, but you should be able to skip any warnings. If you are unsure if you should skip those warnings, there are a couple of things you could check:
For more information, see #185.
Any help improving existing translations or adding new ones is welcome. I will add your names to a list of acknowledgments, either in this readme or in the About section of the tool itself.
If you get stuck in any step, feel free to create an issue and I will assist you.
Strings.xyz.resx files stored in src/OfficeRibbonXEditor/Resourcesxyz part is what indicates the language contained in the fileStrings.es.resx file hereEdit button at the top-right cornername attribute is how they are being identified internally. This might provide some hints about their intended useThese steps are recommended for people that are already a bit familiar with the Git / GitHub workflow. If this is not your case, please create an issue instead. I will then generate a template myself, so you will be able to follow the previous steps instead of these ones.
Strings.resx file here, which contains the default English languageStrings.es.resx for Spanish here)Strings.xyz.resx, with xyz being your language tagde, pt, ru, etc. is enough)name attribute is how they are being identified internally. This might provide some hints about their intended useLanguageChoice class here
to add your new language into the All collectionIt might be possible to perform all these steps directly in your GitHub fork via several commits. Otherwise, you might need to have at least Git installed. Visual Studio should not be necessary unless you want to see how your translation looks (you will be able to see it from the build artifacts of your pull request too).
No open issues yet, or sync has not completed.