Свернуть ленту Office с помощью VBA?

В последнее время я не особо тщательно искал, но в прошлом я искал как можно больше, чтобы найти способ минимизировать ленту с помощью кода VBA. Что касается меня, большинство моих пользователей не используют ленту в Access, я был бы очень рад, если бы смог вернуть им место на экране.

Я знаю, что могу научить их минимизировать это, но ... ну ... они пользователи, а не компьютерные фанаты. :-)


person Icode4food    schedule 14.04.2010    source источник


Ответы (1)


Если ваша база данных настроена для отображения определенной формы при ее открытии, вы можете поместить этот код в событие открытия формы:

Private Sub Form_Open(Cancel As Integer)
    Call HideRibbon
End Sub

Вот подпрограмма HideRibbon:

Public Sub HideRibbon()
    'Access versions before 2007 did not have ribbon '
    'ignore error: '
    '2094, <App Name> can't find the toolbar 'Ribbon.'
    On Error Resume Next
    DoCmd.ShowToolbar "Ribbon", acToolbarNo
    On Error GoTo 0
End Sub

Изменить: я изменил подпункт HideRibbon, чтобы исключить "Продолжить при ошибке" Далее. Он делает то, что я хочу в Access 2003 и 2007. Не уверен в строковом значении, возвращаемом SysCmd (acSysCmdAccessVer) во всех более ранних версиях Access или будущих версиях Access.

Public Sub HideRibbon()
    'Access versions before 2007 did not have ribbon '
    If Val(SysCmd(acSysCmdAccessVer)) >= 12 Then
        DoCmd.ShowToolbar "Ribbon", acToolbarNo
    End If
End Sub
person HansUp    schedule 14.04.2010
comment
Я думаю, что любое использование On Error Resume Next - ошибка программирования. Вместо этого я бы проверил версию Access, чтобы вы выполняли команду только в том случае, если версия была 2007 или выше. Я имею в виду, что вы точно знаете, при каких условиях возникает ошибка, и есть надежный способ запустить тест, который позволяет избежать появления ошибки. Кроме того, если будет сгенерирована какая-либо ошибка, отличная от 2094, она будет проигнорирована, и вы никогда об этом не узнаете. - person David-W-Fenton; 15.04.2010
comment
@ Дэвид Спасибо. Новая подпрограмма HideRibbon - это моя попытка решить поднятые вами проблемы. Это безошибочный путь? - person HansUp; 16.04.2010
comment
Что ж, я не уверен, что это безошибочно, но он не будет работать, когда это неуместно. И, конечно же, в будущем все может измениться и сломать его. Я бы сам выбрал вашу вторую версию, хотя, я думаю, версия с обработчиком ошибок, игнорирующим ошибку 2094, будет более надежной. Я бы сказал, что все, что позволяет избежать On Error Resume Next, является предпочтительным. - person David-W-Fenton; 16.04.2010
comment
Вторая версия также избегает скрытия настраиваемой панели инструментов с именем Ribbon в MDB, работающем под A2003 или более ранней версией. Мне нравится такое поведение, хотя сценарий кажется крайне маловероятным. - person HansUp; 17.04.2010