Vba excel скрыть вкладки

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.

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.

По умолчанию Microsoft Excel показывает вкладки листов в нижней части листа, что позволяет быстро перемещаться между листами. Иногда вкладки листа могут случайно исчезнуть в Excel; напротив, по некоторым причинам вы можете захотеть скрыть некоторые вкладки листа или всю панель вкладок листа. Есть несколько полезных советов по быстрому отображению или скрытию вкладок листа и панели вкладок листа в Excel.

Показать или скрыть панель вкладок листа

  • Отображение или скрытие панели вкладок листа с помощью параметров Excel
  • Отображение или скрытие панели вкладок листа с кодом VBA
  • Отображение или скрытие панели вкладок листа с помощью Kutools for Excel

Показать или скрыть вкладки на одном или нескольких листах

  • Отображение или скрытие одной или нескольких вкладок листа с помощью функции «Скрыть и показать»
  • Отобразить или скрыть все вкладки листа, кроме активной/выбранной, с помощью Kutools for Excel

Отображение или скрытие одной или нескольких вкладок листа с помощью функции «Скрыть и показать»

Скрыть одну или несколько выбранных вкладок листа с помощью функции «Скрыть и показать»

Мы можем применить Excel Скрыть и показать возможность легко скрыть одну или несколько выбранных вкладок листа.

1. Выберите одну или несколько вкладок листов, которые вы скроете на панели вкладок листа.

Примечание:
(1) Удерживая Shift клавишу, вы можете выбрать несколько соседних вкладок листа, щелкнув вкладку первого листа и последнюю на панели вкладок листа;
(2) Удерживая Ctrl Вы можете выбрать несколько несмежных вкладок листов, щелкнув каждую вкладку листа на панели вкладок листа одну за другой.

2. Нажмите Главная > Формат > Скрыть и показать > Скрыть лист. Смотрите скриншот:

И тогда вы увидите, что все выбранные вкладки листа скрыты от панели вкладок листа.


Отображение одной скрытой вкладки листа с функцией «Скрыть и показать»

1. Нажмите Главная > Формат > Скрыть и показать > Показать.

2. В открывшемся диалоговом окне «Показать скрыть» выберите вкладку листа, которую вы хотите отобразить на панели вкладок листа, и щелкните значок OK кнопка. Смотрите скриншот:

Примечание: Этот метод может отображать только одну скрытую вкладку листа за раз. Для пакетного отображения всех скрытых вкладок листа одним щелчком мыши нажмите здесь.


Отобразить или скрыть все вкладки листа, кроме активной/выбранной, с помощью Kutools for Excel

Если у вас есть Kutools for Excelустановлен, вы можете применить его Скрыть невыбранные листы утилита, чтобы скрыть все вкладки листа на панели вкладок листа, кроме активной / выбранной, или применить Показать все листы утилита для отображения всех скрытых вкладок листа одним щелчком мыши.

Скрыть все вкладки листа, кроме активной / выбранной, одним щелчком мыши

Просто нажмите Кутулс > Показать / Скрыть > Скрыть невыбранные листы. И тогда все вкладки листа будут скрыты, кроме активной.

Примечание: Чтобы скрыть все вкладки листа, кроме выбранных, выберите эти вкладки листа, которые вы не будете скрывать, на панели вкладок листа, а затем нажмите Кутулс > Показать / Скрыть > Скрыть невыбранные листы.

Kutools for Excel — Включает более 300 удобных инструментов для Excel. Полнофункциональная бесплатная пробная версия 30-день, кредитная карта не требуется! Get It Now


Отображение всех скрытых вкладок листа одним щелчком мыши

Просто нажмите Кутулс > Показать / Скрыть > Показать все листы для одновременного отображения всех скрытых вкладок листа. Смотрите скриншот:

Kutools for Excel — Включает более 300 удобных инструментов для Excel. Полнофункциональная бесплатная пробная версия 30-день, кредитная карта не требуется! Get It Now


Отображение или скрытие всей панели вкладок листа для отображения / скрытия всех вкладок листа с помощью параметров Excel

Мы можем отображать или скрывать всю панель вкладок листа, чтобы отображать / скрывать все вкладки листа с помощью параметров Excel. Пожалуйста, сделайте следующее:

1, Нажмите Файл > Опции (или > Параметры Excel), чтобы открыть диалоговое окно Параметры Excel.

2. В диалоговом окне «Параметры Excel» нажмите «Дополнительно» на левой панели и установите или снимите флажок «Показать вкладки листа» в разделе «Параметры отображения для этой книги»;

3, Нажмите OK кнопку.

Все вкладки рабочего листа будут отображены или скрыты.


Отображение или скрытие всей панели вкладок листа для отображения / скрытия всех вкладок листа с кодом VBA

Следующие два простых кода VBA также могут помочь вам скрыть или отобразить вкладки листа.

1. Нажмите Застройщик > Визуальный Бейсик, И новый Microsoft Visual Basic для приложений появится окно, щелкните Вставить > Модули, а затем введите в модуль следующие коды.

Код VBA для скрытия панели вкладок листа:

Sub Macro()
ActiveWindow.DisplayWorkbookTabs = False
End Sub

Код VBA для отображения панели вкладок листа:

Sub Macro()
ActiveWindow.DisplayWorkbookTabs = True
End Sub

2. Затем нажмите Run кнопку для запуска кода. Вы получите результат так, как хотите.



Отобразите или скройте всю панель вкладок листа, чтобы отобразить/скрыть все вкладки листа с помощью Kutools for Excel

Также с Kutools for Excel установлен, вы можете применить его параметры просмотра Утилита для быстрого отображения или скрытия всей панели вкладок листа в Excel.

Kutools for Excel — Включает более 300 удобных инструментов для Excel. Полнофункциональная бесплатная пробная версия 30-день, кредитная карта не требуется! Get It Now

1. Нажмите Кутулс > Показать / Скрыть > параметры просмотра.

2. В параметры просмотра диалоговом окне установите или снимите флажок Вкладки листов возможность отображать или скрывать вкладки листов в окне Microsoft Excel.

Наблюдения и советы этой статьи мы подготовили на основании опыта команды параметры просмотра of Kutools for Excel позволяет быстро показать или скрыть большинство настроек Microsoft Excel, например Внутренние вкладки, строка формул, строка состояния, окна на панели задач, линии сетки, разрывы страниц, отображение нулей, вертикальная полоса прокрутки, горизонтальная полоса прокрутки, вкладка листа,… И т. Д. Это сэкономит ваше время на поиске этих настроек, когда вам нужно их показать или скрыть. Нажмите, чтобы узнать больше…

Kutools for Excel — Включает более 300 удобных инструментов для Excel. Полнофункциональная бесплатная пробная версия 30-день, кредитная карта не требуется! Get It Now


Демонстрация: отображение или скрытие вкладок листа и панели вкладок листа в Excel


Статьи по теме

  • Показать или скрыть строку формул
  • Отображение или скрытие заголовков строк и столбцов
  • Отобразить панель выбора
  • Показать или скрыть строку состояния
  • Показать или скрыть горизонтальную / вертикальную полосу прокрутки
  • Показать или скрыть линии сетки
  • Скрыть разрывы страниц
  • Отображение или скрытие нулевых значений в ячейках Microsoft Excel

Лучшие инструменты для работы в офисе

Kutools for Excel Решит большинство ваших проблем и повысит вашу производительность на 80%

  • Снова использовать: Быстро вставить сложные формулы, диаграммы и все, что вы использовали раньше; Зашифровать ячейки с паролем; Создать список рассылки и отправлять электронные письма …
  • Бар Супер Формулы (легко редактировать несколько строк текста и формул); Макет для чтения (легко читать и редактировать большое количество ячеек); Вставить в отфильтрованный диапазон
  • Объединить ячейки / строки / столбцы без потери данных; Разделить содержимое ячеек; Объединить повторяющиеся строки / столбцы… Предотвращение дублирования ячеек; Сравнить диапазоны
  • Выберите Дубликат или Уникальный Ряды; Выбрать пустые строки (все ячейки пустые); Супер находка и нечеткая находка во многих рабочих тетрадях; Случайный выбор …
  • Точная копия Несколько ячеек без изменения ссылки на формулу; Автоматическое создание ссылок на несколько листов; Вставить пули, Флажки и многое другое …
  • Извлечь текст, Добавить текст, Удалить по позиции, Удалить пробел; Создание и печать промежуточных итогов по страницам; Преобразование содержимого ячеек в комментарии
  • Суперфильтр (сохранять и применять схемы фильтров к другим листам); Расширенная сортировка по месяцам / неделям / дням, периодичности и др .; Специальный фильтр жирным, курсивом …
  • Комбинируйте книги и рабочие листы; Объединить таблицы на основе ключевых столбцов; Разделить данные на несколько листов; Пакетное преобразование xls, xlsx и PDF
  • Более 300 мощных функций. Поддерживает Office/Excel 2007-2021 и 365. Поддерживает все языки. Простое развертывание на вашем предприятии или в организации. Полнофункциональная 30-дневная бесплатная пробная версия. 60-дневная гарантия возврата денег.

вкладка kte 201905


Вкладка Office: интерфейс с вкладками в Office и упрощение работы

  • Включение редактирования и чтения с вкладками в Word, Excel, PowerPoint, Издатель, доступ, Visio и проект.
  • Открывайте и создавайте несколько документов на новых вкладках одного окна, а не в новых окнах.
  • Повышает вашу продуктивность на 50% и сокращает количество щелчков мышью на сотни каждый день!

офисный дно

 

Alex65

Пользователь

Сообщений: 25
Регистрация: 29.12.2016

Уважаемые коллеги!
Сделал свою надстройку с некоторыми функциями и поместил их на отдельную вкладку, например с именем » Tender «.
Эти функции должны работать только в определенных файлах — там где есть определенный лист, например с именем «Tenders». В других файлах эти функции работать НЕ будут.
Вопрос: как бы мне убирать/скрывать/удалять (?) эту вкладку » Tender » там, где она не нужна и, наоборот, показывать там где нужно?

Заранее спасибо за подсказки/идеи/наводки.

PS
всех с наступающим Новым годом и Рождеством! :)

 

Андрей VG

Пользователь

Сообщений: 11878
Регистрация: 22.12.2012

Excel 2016, 365

Доброе время суток
В ribbon xml создаёте ссылку на обработчик события onLoad в надстройке макрос для получения объекта интерфейса IRibbonUI. Сохраняете его в переменной.
В ribbon xml создаёте ссылку на обработчик события visible вкладки в надстройке макрос для обработки его вызова, проверающий есть ли в активной книге лист » Tender » (перед этим проверьте есть ли вообще книги ;) )
В надстройке создаёте обработчик событий приложения, например в модуле эта книга
Private WithEvents xlApp As Application
Настраиваете для него обработчик события WorkbookActivate.
В этом обработчике запускаете метод InvalidateControl ранее сохранённой переменной IRibbonUI и передаёте Id объекта вкладки.
Так как-то, если кратенько.

С наступающими и вас!

 

heso

Пользователь

Сообщений: 444
Регистрация: 14.08.2015

#3

29.12.2016 14:28:37

Либо, как вариант:
в .hml добавляете

Код
<tab id="id" label="Tender" getVisible="GetVisible">

в код настройки:

Код
Sub GetVisible(control As IRibbonControl, ByRef visible)
    For Each sh In ActiveWorkbook.Sheets
        If sh.Name = "Tenders" Then
            visible = True
            Exit For
        Else
            visible = False
        End If
    Next
End Sub

p.s. с наступающим)

Изменено: heso29.12.2016 14:33:10

 

Alex65

Пользователь

Сообщений: 25
Регистрация: 29.12.2016

Андрей VG

,

heso

Спасибо за подсказки!
Чего-то я туплю — не получецца ничё :(
То объекта интерфейса IRibbonUI не сохраняется, то метод InvalidateControl  не вызывается …
Но разберусь.

еще раз спасибо

 

Alex65

Пользователь

Сообщений: 25
Регистрация: 29.12.2016

#5

29.12.2016 17:38:53

Цитата
heso написал:

как только добавляю getVisible

Код
<tab id="tabTerderMain" label="TENDERS" visible="true" getVisible="getVisible">

так сразу перестает вообще показывать вкладку :(

а если убираю getVisible, то все ОК  :idea:

Код
<tab id="tabTerderMain" label="TENDERS" visible="true" > <!-- getVisible="getVisible" -->

есть идеи — в чём дело?

 

Андрей VG

Пользователь

Сообщений: 11878
Регистрация: 22.12.2012

Excel 2016, 365

#6

29.12.2016 17:45:43

Цитата
Alex65 написал: getVisible

Я тоже ничего не вижу :(  Дистанционный просмотр кода сломался, увы.

 

Alex65

Пользователь

Сообщений: 25
Регистрация: 29.12.2016

#7

29.12.2016 18:01:53

Цитата
Андрей VG написал: Дистанционный просмотр кода сломался
Код
Public oRibbon As IRibbonUI
Sub OnRibbonLoad(ByRef iRibbon As IRibbonUI)
    Set oRibbon = iRibbon
End Sub

oRibbon — не запоминается — Nothing
:(

 

Doober

Пользователь

Сообщений: 2204
Регистрация: 09.04.2013

#8

29.12.2016 19:16:23

Цитата
Alex65 написал:
oRibbon — не запоминается

Значит у вас в процессе возникает ошибка и oRibbon отваливается.
Файлик бы посмотреть

<#0>

 

heso

Пользователь

Сообщений: 444
Регистрация: 14.08.2015

#9

29.12.2016 19:40:59

Код
<tab id="tabTerderMain" label="TENDERS" visible="true" getVisible="getVisible">

Для начала удалите visible=»true».
Затем..в vba-коде надстройки вы вставили код, что в сообщении #3?

И все таки пример покажите, да.

 

Alex65

Пользователь

Сообщений: 25
Регистрация: 29.12.2016

Спасибо
завтра с работы все пришлю

 

Doober

Пользователь

Сообщений: 2204
Регистрация: 09.04.2013

#11

30.12.2016 01:17:50

Цитата
heso написал: И все таки пример покажите, да

Покажу :)
Ходите по листам-вкладки меняются.
Допилите под себя

Прикрепленные файлы

  • Пример.xlsm (16.94 КБ)

<#0>

 

Alex65

Пользователь

Сообщений: 25
Регистрация: 29.12.2016

Doober

! Спасибо! Допилю уж :)

С наступающими Новым годом и Рождеством!
Желаю Успехов и новых творческих находок!  :D

 

Alex65

Пользователь

Сообщений: 25
Регистрация: 29.12.2016

#13

30.12.2016 13:49:42

Спасибо всем кто откликнулся!
Особое спасибо

Doober

— всё получилось :)

Тема закрыта

Как я могу скрыть и показать все стандартные вкладки ленты Excel, используя VBA (не XML)

Ответ «ВЫ НЕ МОЖЕТЕ«.

AFAIK, вы не можете сделать это с помощью VBA. К сожалению, VBA не предоставляет вкладки. Единственные варианты, которые у вас есть, как показано на рисунке ниже

Таким образом, вы можете работать с панелью команд, commandbarButton, commandbarComboBox и т.д…

Вы можете сказать, что Set cbar = Application.CommandBars("Ribbon") но после этого проблема, с которой вы столкнетесь, заключается в том, как получить ручку для вкладок.

Что вы можете сделать с помощью ленты VBA:

  • Определите, включен ли конкретный элемент управления / видимый / нажатый (переключатели / флажки)
  • Получить метку элемента управления, подсказку на экране или всплывающую подсказку Отображение изображения, связанного с элементом управления.
  • Выполнить определенный контроль.

Что вы не можете сделать с помощью ленты VBA:

  • Определите, какая вкладка выбрана в данный момент.
  • Активировать определенную вкладку.
  • Скрыть конкретную вкладку
  • Добавить новую вкладку.
  • Добавить новую группу на вкладку.
  • Добавить новый элемент управления.
  • Удалить / отключить / скрыть элемент управления.

Однако вы можете использовать XML для достижения того, что вы хотите. Например

<customUI xmlns="http://schemas.microsoft.com/office/2006/01/customui">
    <ribbon>
        <tabs>
            <tab idMso="TabReview" visible="false" />
        </tabs>
    </ribbon>
</customUI>

Но я думаю, вы не хотите идти по XML-маршруту.

Понравилась статья? Поделить с друзьями:
  • Vba excel сколько листов в книге
  • Vba excel сколько дней в месяце
  • Vba excel склонение по падежам
  • Vba excel скачивание файлов
  • Vba excel скачать бесплатно с активатором