excelvbaribbon

Excel Hide/Show all tabs on Ribbon except custom tab


How can I hide and show all the standard Excel ribbon tabs using VBA (not XML). I do not want to hide the whole ribbon (as is asked here: VBA minimize ribbon in Excel) just the tabs. I know how to use startFromScratch using XML so please do not suggest that or other XML solutions.

So far I have done an extensive Google search and looked at:

What I am saying is I have already done an extensive search and tried many things without getting a result.


Solution

  • How can I hide and show all the standard Excel ribbon tabs using VBA (not XML)

    The answer is "YOU CAN'T".

    AFAIK, you can't do that using VBA. Unfortunately VBA doesn't expose the tabs. The only options that you have are as shown in the image below

    enter image description here

    So you can work with the commandbar, commandbarButton, commandbarComboBox etc...

    You can say that Set cbar = Application.CommandBars("Ribbon") but after that, the problem that you will face is how to get a handle for the tabs.

    What you can do with the Ribbon using VBA:

    What you can't do with the Ribbon using VBA:

    You can however use XML to achieve what you want. For example

    <customUI xmlns="http://schemas.microsoft.com/office/2006/01/customui">
        <ribbon>
            <tabs>
                <tab idMso="TabReview" visible="false" />
            </tabs>
        </ribbon>
    </customUI>
    

    But I guess you do not want to go via the XML Route.