[AccessD] A2012 Ribbon collapse (not hide) from code

Gustav Brock gustav at cactus.dk
Fri Feb 8 10:32:38 CST 2013


Hi Stuart

That is indeed strange. I cannot explain.

Now, for anyone to use, here is a simple function that will collapse, enable
("un-collapse"), or toggle the collapsing of the ribbon:

<code>
Public Function EnableRibbon(Optional ByVal varEnable As Variant) As Boolean

' Set or toggle if the Ribbon should be collapsed or enabled.
'
' 2013-02-08. Cactus Data ApS, CPH.
'
' Can be used with AutoExec macro to minimize the Ribbon at launch:
'   EnableRibbon(False)

    ' Height of Ribbon when enabled: 141
    ' Height of Ribbon when collapsed: 53
    Const clngRibbonHeight  As Long = 97
    Const cstrRibbonName    As String = "Ribbon"
    
    Dim booEnabled          As Boolean
    
    ' Continue on error and toggle the collapsing of the Ribbon.
    On Error Resume Next
    
    ' Make the Ribbon visible as a hidden ribbon cannot be controlled.
    DoCmd.ShowToolbar cstrRibbonName, acToolbarYes
    
    ' Measure if the Ribbon is collapsed or enabled.
    booEnabled = (Application.CommandBars(cstrRibbonName).Height >
clngRibbonHeight)
    
    If IsMissing(varEnable) Or (booEnabled Xor CBool(varEnable)) Then
        ' Toggle the collapsing of the Ribbon.
        CommandBars.ExecuteMso "MinimizeRibbon"
        booEnabled = Not booEnabled
    End If
    
    ' Return the current state of the Ribbon.
    EnableRibbon = booEnabled
    
End Function
</code>

/gustav

-----Oprindelig meddelelse-----
Fra: accessd-bounces at databaseadvisors.com
[mailto:accessd-bounces at databaseadvisors.com] På vegne af Stuart McLachlan
Sendt: 8. februar 2013 15:36
Til: Access Developers discussion and problem solving
Emne: Re: [AccessD] A2012 Ribbon collapse (not hide) from code

The other interesting snippet is in Access 2010 VBA Help:

CommandBars.ExecuteMso Method
"  Note
The Microsoft Office Assistant has been deprecated in the 2007 release of
the Microsoft Office system 
 
And yet they introduced  this ExexuteMSO parameter in Access 2010.  WTF?

--
Stuart

On 8 Feb 2013 at 13:39, Gustav Brock wrote:

> Hi Stuart
> 
> Thanks. So did I. Searched for minimize instead of collapse and found by
Albert D. Kallal:
> 
>
http://social.msdn.microsoft.com/Forums/en-US/accessdev/thread/f8e6397f-fb63
-4508-a64c-5119303dce31
> 
> Now, the big question is how to maximize it when minimized??
> This is where the intuitive part comes in. I tried, of course, with 
> all the obvious variations - then returned to the thread and browsed to
the bottom:
> 
> <quote>
> If I use the same line of code to hide the ribbon in the OnClose 
> property, the ribbon is restored.  Not completely intuitive, I think, 
> that minimizing something that's minimized results in something maximized.
> </quote>
> 
> You gotta love that kind of logic.
> Time for Friday beer and weekend.
> 
> /gustav
> 
> -----Oprindelig meddelelse-----
> Fra: accessd-bounces at databaseadvisors.com
> [mailto:accessd-bounces at databaseadvisors.com] På vegne af Stuart 
> McLachlan
> Sendt: 8. februar 2013 13:06
> Til: Access Developers discussion and problem solving
> Emne: Re: [AccessD] A2012 Ribbon collapse (not hide) from code
> 
> Just discovered, Access 2010:
> 
> CommandBars.ExecuteMso "MinimizeRibbon"
> 
> --
> Stuart
> 
> On 8 Feb 2013 at 22:00, Stuart McLachlan wrote:
> 
> > 2007/10   I'm guessing it will work in 2012:
> > 
> > A real kludge, but I've never found an alternative. 
> > 
> > If CommandBars("ribbon").Height > 100 Then SendKeys "^{F1}", True 
> > End If
> > 
> > --
> > Stuart
> > 
> > On 8 Feb 2013 at 11:51, Gustav Brock wrote:
> > 
> > > Hi all
> > > 
> > > Is this possible? It's easy to _hide_ , but how to collapse (or
minimize)?
> > > Also, client is not interested in custom ribbons; the default is fine.

> > > 
> > > /gustav 




More information about the AccessD mailing list