Minimizing the Ribbon for a Document

by Allen Wyatt
(last updated February 21, 2015)

1

Donna is in charge of preparing a document that will be used throughout her company. She would like the document, when opened, to "minimize" the ribbon at the top of the screen and then, when closed, return the ribbon to its "pre-opening" state. This would be done to provide the maximum screen area for the document. Donna figures that this will take a macro to accomplish, but she's not sure which commands to use to accomplish the task.

There is an amazing paucity of information available on working with the ribbon in VBA. In fact, the only method we've been able to locate that will minimize the ribbon is the following:

ActiveWindow.ToggleRibbon

This method is the same as pressing Ctrl+F1. It toggles the ribbon, changing it from maximized to minimized, and vice-versa. This, of course, is not what Donna wants to do; she wants to make sure it is minimized. Using the ToggleRibbon method, you can "fudge" a way to figure out whether the ribbon is minimized or not. Consider the following example macros.

Dim w As Variant
Dim h1 As Long
Dim h2 As Long
Dim StartedWithRibbon As Boolean

Private Sub Document_Open()
    Set w = ActiveWindow
    h1 = w.UsableHeight
    w.ToggleRibbon
    h2 = w.UsableHeight
    If h1 < h2 Then
        StartedWithRibbon = False
    Else
        StartedWithRibbon = True
        w.ToggleRibbon
    End If
End Sub
Private Sub Document_Close()
    Set w = ActiveWindow
    h1 = w.UsableHeight
    w.ToggleRibbon
    h2 = w.UsableHeight
    If h2 < h1 Then
        If StartedWithRibbon Then w.ToggleRibbon
    Else
        If Not StartedWithRibbon Then w.ToggleRibbon
    End If
End Sub

There are actually two macros here, one automatically triggered when a document is opened and the other triggered when it is closed. The macros check the height of the active window, storing it in the h1 variable. It then toggles the ribbon and again checks the active window height, storing it in h2. By comparing the two values, you can determine whether the ribbon is minimized or not and then act accordingly.

Note:

If you would like to know how to use the macros described on this page (or on any other page on the WordTips sites), I've prepared a special page that includes helpful information. Click here to open that special page in a new browser tab.

WordTips is your source for cost-effective Microsoft Word training. (Microsoft Word is the most popular word processing software in the world.) This tip (8515) applies to Microsoft Word 2007, 2010, and 2013.

Author Bio

Allen Wyatt

With more than 50 non-fiction books and numerous magazine articles to his credit, Allen Wyatt is an internationally recognized author. He is president of Sharon Parq Associates, a computer and publishing services company. ...

MORE FROM ALLEN

Special Differences when Searching

Word includes two different search engines. Which search engine you choose to use will dictate what Word shows as ...

Discover More

Printing Multiple Selections

Need to print several portions of a worksheet all on a single piece of paper? Here's an easy way you can get what you ...

Discover More

Changing the Axis Scale

When creating a chart, you may want to adjust the default scaling that Excel applies to an axis. This is relatively easy ...

Discover More

The First and Last Word on Word! Bestselling For Dummies author Dan Gookin puts his usual fun and friendly candor back to work to show you how to navigate Word 2013. Spend more time working and less time trying to figure it all out! Check out Word 2013 For Dummies today!

More WordTips (ribbon)

Determining If a Number is Odd or Even

Need to know if a number in a macro is odd or even? It's easy to figure out with the simple calculation shown in this tip.

Discover More

Copying a File in VBA

Need to have your macro copy a file from one place to another? It's easy to do using the FileCopy command, described in ...

Discover More

Determining an Integer Value

One of the math functions you can use in your macros is the Int function. It provides a way for you to derive an integer ...

Discover More
Subscribe

FREE SERVICE: Get tips like this every week in WordTips, a free productivity newsletter. Enter your address and click "Subscribe."

View most recent newsletter.

Comments

If you would like to add an image to your comment (not an avatar, but an image to help in making the point of your comment), include the characters [{fig}] in your comment text. You’ll be prompted to upload your image when you submit the comment. Maximum image size is 6Mpixels. Images larger than 600px wide or 1000px tall will be reduced. Up to three images may be included in a comment. All images are subject to review. Commenting privileges may be curtailed if inappropriate images are posted.

What is five minus 2?

2016-07-25 19:44:20

Mark Delorme

I understand the concept behind this script, and ideally, it should work as intended, although the ActiveWindow.UsableHeight command isn't returning the updated height property after the .ToggleRibbon command.

Any idea as to how I can get the 'updated' .UsableHeight property following the .ToggleRibbon command?

I've tried specifying specific values for the usable height, although depending on the screen size, this property is variable and inconsistent with different monitors. I could try to set minimum/maximum values for H1/H2, although even so, the values returned are too variable between different computers.


This Site

Got a version of Word that uses the ribbon interface (Word 2007 or later)? This site is for you! If you use an earlier version of Word, visit our WordTips site focusing on the menu interface.

Newest Tips
Subscribe

FREE SERVICE: Get tips like this every week in WordTips, a free productivity newsletter. Enter your address and click "Subscribe."

(Your e-mail address is not shared with anyone, ever.)

View the most recent newsletter.