<?xml version="1.0"?>
<oembed><version>1.0</version><provider_name>ELB Solutions.com Inc.</provider_name><provider_url>https://elbsolutions.com/projects</provider_url><author_name>Etienne Bley</author_name><author_url>https://elbsolutions.com/projects/author/etienne-bley/</author_url><title>Custom Ribbon Via VBA - ELB Solutions.com Inc.</title><type>rich</type><width>600</width><height>338</height><html>&lt;blockquote class="wp-embedded-content" data-secret="4U5dFXZ2Ws"&gt;&lt;a href="https://elbsolutions.com/projects/custom-ribbon-via-vba/"&gt;Custom Ribbon Via VBA&lt;/a&gt;&lt;/blockquote&gt;&lt;iframe sandbox="allow-scripts" security="restricted" src="https://elbsolutions.com/projects/custom-ribbon-via-vba/embed/#?secret=4U5dFXZ2Ws" width="600" height="338" title="&#x201C;Custom Ribbon Via VBA&#x201D; &#x2014; ELB Solutions.com Inc." data-secret="4U5dFXZ2Ws" frameborder="0" marginwidth="0" marginheight="0" scrolling="no" class="wp-embedded-content"&gt;&lt;/iframe&gt;&lt;script&gt;
/*! This file is auto-generated */
!function(d,l){"use strict";l.querySelector&amp;&amp;d.addEventListener&amp;&amp;"undefined"!=typeof URL&amp;&amp;(d.wp=d.wp||{},d.wp.receiveEmbedMessage||(d.wp.receiveEmbedMessage=function(e){var t=e.data;if((t||t.secret||t.message||t.value)&amp;&amp;!/[^a-zA-Z0-9]/.test(t.secret)){for(var s,r,n,a=l.querySelectorAll('iframe[data-secret="'+t.secret+'"]'),o=l.querySelectorAll('blockquote[data-secret="'+t.secret+'"]'),c=new RegExp("^https?:$","i"),i=0;i&lt;o.length;i++)o[i].style.display="none";for(i=0;i&lt;a.length;i++)s=a[i],e.source===s.contentWindow&amp;&amp;(s.removeAttribute("style"),"height"===t.message?(1e3&lt;(r=parseInt(t.value,10))?r=1e3:~~r&lt;200&amp;&amp;(r=200),s.height=r):"link"===t.message&amp;&amp;(r=new URL(s.getAttribute("src")),n=new URL(t.value),c.test(n.protocol))&amp;&amp;n.host===r.host&amp;&amp;l.activeElement===s&amp;&amp;(d.top.location.href=t.value))}},d.addEventListener("message",d.wp.receiveEmbedMessage,!1),l.addEventListener("DOMContentLoaded",function(){for(var e,t,s=l.querySelectorAll("iframe.wp-embedded-content"),r=0;r&lt;s.length;r++)(t=(e=s[r]).getAttribute("data-secret"))||(t=Math.random().toString(36).substring(2,12),e.src+="#?secret="+t,e.setAttribute("data-secret",t)),e.contentWindow.postMessage({message:"ready",secret:t},"*")},!1)))}(window,document);
//# sourceURL=https://elbsolutions.com/projects/wp-includes/js/wp-embed.min.js
&lt;/script&gt;
</html><description>Here&#x2019;s a couple links that explain how to unzip and modify the OpenXML file hierarchy of .xlsx and .xlsm files and how to create custom ribbonUI. This should make it possible to access and modify the customUI ribbon via customXMLParts at runtime. Opening and modifying excel files as zips: https://www.jkp-ads.com/articles/excel2007fileformat02.asp VBA customUI editor: https://yoursumbuddy.com/ribbon-customui-xml-editor/</description></oembed>
