mail mail

Как скрыть панели инструментов Excel 2003 и ленту Excel 2007 при помощи макроса на VBA

"Чиcтый" интерфейс Excel

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

(скрываются все панели инструментов в Excel 2003 и лента в Excel 2007; скрываются ярлычки листов, линейки и полосы прокрутки; изменяется название окна приложения)

При необходимости можно отображать нужную панели инструментов, в то время, как остальные панели будут скрыты)

Private Sub ChangeInterface(Value As Boolean)
    With Application
        .ScreenUpdating = False
        .Caption = IIf(Value = True, Empty, "Наше окно")
        .DisplayStatusBar = Value: .DisplayFormulaBar = Value
        Dim iCommandBar As CommandBar
        For Each iCommandBar In .CommandBars
            iCommandBar.Enabled = Value
        Next
        With .ActiveWindow
            .Caption = IIf(Value = True, .Parent.Name, "")
            .DisplayHeadings = Value: .DisplayGridlines = Value
            .DisplayHorizontalScrollBar = Value: .DisplayVerticalScrollBar = Value
            .DisplayWorkbookTabs = Value
        End With
        .ExecuteExcel4Macro "SHOW.TOOLBAR(""Ribbon"", " & Value & ")"
        .ScreenUpdating = True
    End With
End Sub

Private Sub УбратьВсё()
    ChangeInterface False
End Sub

Private Sub ВосстановитьИнтерфейс()
    ChangeInterface True
End Sub

Чтобы скрывать панели инструментов Excel 2003 и ленту Excel 2007 только для одной книги,
поместите в модуль ЭтаКнига следующий код:
(при переключении на другой файл интерфейс Excel будет восстанавливаться)

Private Sub Workbook_Open() ' открытие книги
   УбратьВсё
End Sub
Private Sub Workbook_Activate() ' возврат на эту книгу из другой
   УбратьВсё
End Sub

Private Sub Workbook_BeforeClose(Cancel As Boolean) ' закрытие книги
   ВосстановитьИнтерфейс
End Sub
Private Sub Workbook_Deactivate() ' переключение на другую книгу
   ВосстановитьИнтерфейс
End Sub

См. пример в прикреплённом файле:

ВложениеРазмер
HideExcelInterface.xls23.5 КБ

Комментарии

Настройки просмотра комментариев

Выберите нужный метод показа комментариев и нажмите "Сохранить установки".

У меня та же проблема в верхней части экрана синяя строка то появляется то нет.
Прекрасный сайт! Спасибо админу!

Есть глюк. Закрываем файл, в ответ на запрос о сохранении жмем "отмена" и разворачиваем ленту. Как избавиться? И как оставить кнопку печать? В VBA чайник, прошу объяснить подробно.

В 2003 все понятно со скрытием меню и программированием своего
А вот в 2007 и 2010 удается скрыть ленту, а дальше что-то я торможу как создать свое меню.

Вопрос еще такой: как запретить пользователю залезать в "параметры" в 2007 и 2010? и можноли отключить эту круглую кнопку в 2007 и "файл" в 2010?

Ваш сайт исключительно полезен для меня.
Лучшего я пока не встречал
Спасибо
С уважением, Raikhman

иа моем компе 2 версии офиса 2003 и 2010 (приходится иногда пользоваться и одной и другой)
активная всегда одна из них и это создает проблемы

есть такой код на vb6

Public Sub Main()
'On Error Resume Next
'Проверяем версию Excel
Set xlApp = New Excel.Application
xlApp.Visible = True
If Val(xlApp.Version) <> 14 Then
MsgBox "Необходим Excel-2010"
xlApp.Quit
Set xlApp = Nothing
Exit Sub
End If

если активен excel 2010 то продолжаем, а если нет, то выходим.
Проблема: если активен 2003, то для работы программы приходится переустанавливать десятку - это весьма нудно. гдето в реестре чтото есть для быстрого переключения, или чтото еще, но где?
Кроме Вас на форуме чтото все залипли
спасибо

Подскажите пожалуйста как скрыть не всю ленту, а только некоторые, конкретные вкладки, или как вариант, скрыть всю, а потом отобразить нужные.
Спасибо.

Тут ничего сложного нет - сначала запускаете макрос скрытия интерфейса, а следом за ним - макрос формирования панели инструментов

Private Sub Workbook_Open() ' открытие книги
   УбратьВсё
    ФормированиеПанелиИнструментов
End Sub

"При необходимости можно отображать нужную панели инструментов, в то время, как остальные панели будут скрыты)"

Может быть как это сделать всем очевидно, но я в затруднении.. нужно решение по котором оставалась бы только создаваемая пользовательская панель.. А как??

Сайт очень полезный и информативный!

Отличный макрос! Разработчику респект! Есть только один недостаток. При переходе с одного листа открытой книги на другой, а потом возврат на предыдущий - в верхней части экрана под заголовком окна появляется странная полоса. После выполнения последовательно макросов ВосстановитьИнтерфейс, УбратьВсё полоса пропадает, а потом снова появляется. Кроме того в Таблице настройки панелей инструментов появляется странное пустое окно выбора панели (без наименования, удалить которое невозможно. Можете что-либо прояснить по данному багу.

С уважением
Вадим

а можно проще, если надо только скрыть панели

Можно и так, конечно, но результат будет не совсем тот.

Во-первых, остаются видимыми заголовки строк и столбцов, полосы прокрутки, ярлычки листов, а в Excel 2003, помимо этого, еще и панели инструментов.

Так что упрощённый способ не даст такого результата, которого можно добиться при использовании функции ChangeInterface

а можно проще, если надо только скрить панели:
Private Sub Workbook_Open()   
  Application.DisplayFullScreen = True
End Sub

Отправить комментарий

Содержание этого поля является приватным и не предназначено к показу.
CAPTCHA
Подтвердите, пожалуйста, что вы - человек:
8 + 5 =
Решите эту простую математическую задачу и введите результат. Например, для 1+3, введите 4.