Как скрыть панель в excel при vba

Как скрыть панели инструментов 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

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

  • 39157 просмотров

Не получается применить макрос? Не удаётся изменить код под свои нужды?

Оформите заказ у нас на сайте, не забыв прикрепить примеры файлов, и описать, что и как должно работать.

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:

  • Determine whether a particular control is Enabled/Visible/Pressed(Toggleboxes/CheckBoxes)
  • Get a control’s label, screen tip, or supertip Display the image associated with a
    control.
  • Execute a particular control.

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

  • Determine which tab is currently selected.
  • Activate a particular tab.
  • Hide a particular tab
  • Add a new tab.
  • Add a new group to a tab.
  • Add a new control.
  • Remove/Disable/Hide a control.

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.

Как Auto-hide Ribbon в Excel 2013 в VBA? Я хотел бы добиться именно того, что получаю, щелкнув значок верхней стрелки в правой верхней части меню Excel, отмеченного синим на рисунке ниже, а затем щелкнув первый параметр, помеченный оранжевым:

введите описание изображения здесь

Я также был бы заинтересован в переключении VBA на третий вариант Show Tabs and Commands, Для меня важно сохранить в меню Excel значок верхней стрелки (отмечен синим цветом).

Я пробовал подсказки, показанные в этой теме: VBA свернуть ленту в Excel, но я не удовлетворен результатами.

Попытка 1

Application.ExecuteExcel4Macro "Show.ToolBar(""Ribbon"",False)

Это хорошо, но скрывает синий значок.

Попытка 2

CommandBars.ExecuteMso "MinimizeRibbon"

Это близко к тому, что я хочу. Это сохраняет синий значок, но не скрывает все меню. Он переключается на второй вариант, отображаемый на картинке Show Tabs,

Попытка 3

SendKeys "^{F1}"

Преступление не работает вообще. Более того, он должен имитировать попытку 2. Так что даже это не удовлетворило бы меня.

2016-08-29 08:31

7

ответов

Решение

Я не вижу, чтобы кто-то еще поднял этот вопрос… Это не обходной путь, это фактический idMSO для того, что, я думаю, вы ищете. Этот код заставляет мое окно Excel выглядеть так, как будто все прошло так же, как первый вариант для Auto-Hide Ribbon,

Перед запуском кода мое окно выглядит примерно так: размер «Восстановить»:

Выполнение следующего кода:

Sub HideTheRibbon()
    CommandBars.ExecuteMso "HideRibbon"
End Sub

Сделает ваше окно похожим на это в максимизированном размере окна (точно так же, как если бы вы нажали Auto-Hide Ribbon кнопка вручную):

Если вы хотите, чтобы лента автоматически скрывалась при открытии книги, вставьте ее в код книги:

Sub Workbook_Open()
    CommandBars.ExecuteMso "HideRibbon"
End Sub

В качестве альтернативы, чтобы достичь того же, вы можете поместить этот код в модуль:

Sub Auto_Open()
    CommandBars.ExecuteMso "HideRibbon"
End Sub

Если вы хотите, чтобы окно вернулось в нормальное состояние, вы снова запускаете тот же код. Другими словами, следующий код не будет делать никаких визуальных изменений при запуске, потому что idMSO «HideRibbon» является toggleButton:

Sub HideTheRibbon()
    CommandBars.ExecuteMso "HideRibbon"
    CommandBars.ExecuteMso "HideRibbon"
End Sub

Если вы хотите получить полный список всех idMSO в Excel, выберите следующее: Excel 2013+, Excel 2010, Excel 2007

2016-09-03 18:45

Я использую это в целях презентации

ActiveWindow.DisplayGridlines = False

ActiveWindow.DisplayHeadings = False

Application.DisplayFormulaBar = False

Application.DisplayFullScreen = True Это то, что я использовал, чтобы скрыть ленту

2017-01-04 08:57

Возможно, вам следует сделать что-то более сложное:

использование CommandBars.ExecuteMso "MinimizeRibbon" показать / скрыть ленту В зависимости от того, что вы хотите, вы можете показать / скрыть все другие вкладки на ленте. Например, используйте что-то из кода здесь -> Excel Скрыть / Показать все вкладки на ленте, кроме настраиваемой вкладки

Таким образом 2 шага:

Шаг 1 — показать или скрыть с помощью CommandBars.ExecuteMso

Шаг 2 — показать или скрыть остальные ссылки с некоторыми макросами по ссылке.

Немного большой обходной путь, но вы получите то, что хотите.

2016-08-31 11:15

Я вызываю этот макрос в Workbook_Open, чтобы проверить наличие ленты, и если она не скрыта, она скрывает ленту (на самом деле она находится в другом подпрограмме, которая также удаляет строку формул, строку состояния, заголовки и линии сетки в Workbook_Open)…

Sub HideRibbon()
If CommandBars("Ribbon").Controls(1).Height < 100 Then
Exit Sub
Else
    CommandBars.ExecuteMso ("MinimizeRibbon")
End If
End Sub

Затем я вызываю этот макрос в Workbook_BeforeClose, чтобы проверить наличие ленты, и если она не отображается, она покажет ленту для следующей открытой таблицы Excel.

Sub ShowRibbon()
If CommandBars("Ribbon").Controls(1).Height > 100 Then
Exit Sub
Else
    CommandBars.ExecuteMso ("MinimizeRibbon")
End If
End Sub

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

2017-06-07 12:50

Попробуйте это:

Sub ShowHideRibbon()

If CommandBars("Ribbon").Controls(1).Height < 100 Then
    CommandBars.ExecuteMso ("MinimizeRibbon")
Else
    CommandBars.ExecuteMso ("MinimizeRibbon")
End If

End Sub

Или это:

Sub ShowHideRibbon1()

If Application.ExecuteExcel4Macro("Get.ToolBar(7,""Ribbon"")") Then
    Application.ExecuteExcel4Macro "Show.ToolBar(""Ribbon"", False)"
Else
    Application.ExecuteExcel4Macro "Show.ToolBar(""Ribbon"", True)"
End If

End Sub

2016-09-02 02:30

Сначала перейдите в «Параметры Excel» и перейдите к «Панели быстрого действия».

Оттуда найдите «Скрыть ленту» и добавьте на панель инструментов. После того, как он находится в QAT, вы можете быстро вызвать его с помощью ALT+# (на моем компьютере это восьмая вещь, поэтому ALT+8 будет автоматически скрываться).

Затем просто добавьте подпрограмму, которая выполняет SendKeys ALT, затем 8:

Sub Macro1()
ActiveSheet.Activate
'Cells(1, 1).Select
SendKeys "%0", True
SendKeys "8", True

End Sub

Примечание: я знаю, что глупо иметь ActiveSheet.ActivateЯ только что добавил это, чтобы проверить макрос. В зависимости от того, как он вызывается, вы можете удалить / закомментировать эту строку. % эквивалентно ALTи технически, я должен нажать 0, затем 8, отсюда две строки.

2016-08-31 16:52

Чтобы этот код работал в Excel 2016, вам потребуется следующий код в режиме «ThisWorkbook».

Кредит идет в BigBen — не я

Private Sub Workbook_Open()
application.CommandBars.ExecuteMso "HideRibbon"
End Sub

2018-10-30 16:16

Формулировка задачи:

Скрываю все панели в книге Excel:

Вопрос: как отобразить только те панели, которые были отображены на момент их скрытия??

Код к задаче: «Excel (VBA) — Скрыть и отобразить панели инструментов ??»

textual

<font color="blue">Public</font> <font color="blue">Sub</font> RemoveMenuBar3()
    <font color="blue">Dim</font> cb <font color="blue">As</font> CommandBar
    
    <font color="blue">Set</font> cb = Application.CommandBars(<font color="teal">"Worksheet menu bar"</font>)
    
    cb.Enabled = [b]True[/b]

    <font color="blue">Set</font> cb = <font color="blue">Nothing</font>
<font color="blue">End</font> <font color="blue">Sub</font>[/quot]

Полезно ли:

14   голосов , оценка 4.286 из 5

Как скрыть панели инструментов и ленту Excel 2010

Tatsiana

Дата: Суббота, 01.02.2014, 17:16 |
Сообщение № 1

Группа: Пользователи

Ранг: Новичок

Сообщений: 12


Репутация:

0

±

Замечаний:
0% ±


Excel 2010

Помогите, создала тест. испытуемому не нужно видеть ленту и панели инструментов Excel 2010. Как скрыть?

К сообщению приложен файл:

9074212.xlsm
(51.5 Kb)


Tanya

 

Ответить

Stormy

Дата: Суббота, 01.02.2014, 17:24 |
Сообщение № 2

Группа: Проверенные

Ранг: Обитатель

Сообщений: 357


Репутация:

12

±

Замечаний:
0% ±


Excel 2010


Место для рекламы.

 

Ответить

nilem

Дата: Суббота, 01.02.2014, 17:25 |
Сообщение № 3

Группа: Авторы

Ранг: Старожил

Сообщений: 1612


Репутация:

563

±

Замечаний:
0% ±


Excel 2013, 2016

так?

К сообщению приложен файл:

7349874.xlsm
(50.3 Kb)


Яндекс.Деньги 4100159601573

 

Ответить

Tatsiana

Дата: Суббота, 01.02.2014, 17:32 |
Сообщение № 4

Группа: Пользователи

Ранг: Новичок

Сообщений: 12


Репутация:

0

±

Замечаний:
0% ±


Excel 2010

nilem, мне нужно убрать ярлыки листов, чтобы тестируемый не видел листов Итоги1….. Например, вот так: (Прикрепляю файл)


Tanya

 

Ответить

Tatsiana

Дата: Суббота, 01.02.2014, 17:35 |
Сообщение № 5

Группа: Пользователи

Ранг: Новичок

Сообщений: 12


Репутация:

0

±

Замечаний:
0% ±


Excel 2010

Не получилось прикрепить, размер больше допустимого.


Tanya

 

Ответить

Stormy

Дата: Суббота, 01.02.2014, 17:50 |
Сообщение № 6

Группа: Проверенные

Ранг: Обитатель

Сообщений: 357


Репутация:

12

±

Замечаний:
0% ±


Excel 2010

Ну и вдобавок нужно еще отобразить нужный лист после того как произошел клик на Итоги?
Так подойдет?

К сообщению приложен файл:

8038025.xlsm
(52.2 Kb)


Место для рекламы.

Сообщение отредактировал StormyСуббота, 01.02.2014, 17:54

 

Ответить

Tatsiana

Дата: Суббота, 01.02.2014, 18:03 |
Сообщение № 7

Группа: Пользователи

Ранг: Новичок

Сообщений: 12


Репутация:

0

±

Замечаний:
0% ±


Excel 2010

Спасибо, конечно, но хотелось бы вот что:

К сообщению приложен файл:

4263440.png
(82.6 Kb)


Tanya

 

Ответить

Tatsiana

Дата: Суббота, 01.02.2014, 18:04 |
Сообщение № 8

Группа: Пользователи

Ранг: Новичок

Сообщений: 12


Репутация:

0

±

Замечаний:
0% ±


Excel 2010

То есть, чтобы вообще не была видна нижняя полоса прокрутки и ярлыки листов.


Tanya

 

Ответить

Матраскин

Дата: Воскресенье, 02.02.2014, 17:12 |
Сообщение № 9

Группа: Друзья

Ранг: Обитатель

Сообщений: 375


Репутация:

81

±

Замечаний:
0% ±


20xx

Tatsiana, параметры — дополнительно — показать ярлыки листов — убрать галочку

К сообщению приложен файл:

__.rar
(18.8 Kb)


в интернете опять кто-то не прав

 

Ответить

Stormy

Дата: Понедельник, 03.02.2014, 13:14 |
Сообщение № 10

Группа: Проверенные

Ранг: Обитатель

Сообщений: 357


Репутация:

12

±

Замечаний:
0% ±


Excel 2010

Нужно добавить отключение скролла (имхо) . Вопрос еще актуален?


Место для рекламы.

 

Ответить

Понравилась статья? Поделить с друзьями:

А вот еще интересные статьи:

  • Как скрыть панели инструментов excel
  • Как скрыть содержание ячеек в excel
  • Как скрыть ошибку дел 0 в excel
  • Как скрыть слово ложь в excel
  • Как скрыть ошибку в ячейке excel

  • 0 0 голоса
    Рейтинг статьи
    Подписаться
    Уведомить о
    guest

    0 комментариев
    Старые
    Новые Популярные
    Межтекстовые Отзывы
    Посмотреть все комментарии