2013-11-14 3 views
7

Как скрыть и показать все стандартные вкладки ленты Excel с помощью VBA (а не XML). Я не хочу скрывать всю ленту (как это задано здесь: VBA minimize ribbon in Excel) только вкладки. Я знаю, как использовать startFromScratch с использованием XML, поэтому, пожалуйста, не предлагайте это или другие XML-решения.Excel Скрыть/Показать все вкладки на ленте, кроме настраиваемой вкладки

До сих пор я сделал обширный поиск Google и посмотрел на:

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

+0

Я действительно хочу это. К сожалению, я уже был на этой странице как часть моего поиска в Google. Спасибо за попытку @PortlandRunner. – Brett

+0

вы должны использовать XML для настройки ленты. Вы можете сделать невидимыми значения по умолчанию, просто нужно знать имя встроенных вкладок. например скрывая вкладку ** Home **: '' – PatricK

+0

@PatricK, вы говорите, что xml моей пользовательской ленты-ленты может скрывать вкладки ленты ленты по умолчанию ? –

ответ

10

Как можно скрыть и показать все стандартные вкладки ленты Excel с помощью VBA (не XML)

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

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

enter image description here

Таким образом, вы можете работать с CommandBar, commandbarButton, commandbarComboBox и т.д ...

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

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

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

То, что вы не можете сделать с лентой с помощью VBA:

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

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

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

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

4

Для активации каждой вкладки

В Microsoft Office 2010, вы активируете настраиваемую вкладку с помощью метода ActivateTab из IRibbonUI объекта

Вы используете метод ActivateTabMso для встроенных вкладок и ActivateTabQ для вкладок, разделяемых между несколькими надстройками.

ActivateTabQ также требует дополнительного параметра Строка типа, который определяет пространство имен надстройки в

В XML указать

customUI onLoad="RibbonOnLoad" xmlns=etc 

В VBA

Public gRibbonUI As IRibbonUI 

Sub RibbonOnLoad(ribbon As IRibbonUI) 

    Set gRibbonUI = ribbon 

End Sub 

Тогда в код

gRibbonUI.ActivateTab "MyTabID" 

gRibbonUI.ActivateTabMso "TabHome" 
1

Вы можете использовать на XML, как это:

< лента startFromScratch = "истинный">

проверить эту ссылку:

http://www.rondebruin.nl/win/s2/win012.htm

+1

спасибо за ваш ответ, но я сказал: «Я знаю, как использовать startFromScratch, используя XML, поэтому, пожалуйста, не предлагайте это». Внимательно прочитайте вопросы в будущем. – Brett

2

Во-первых, открытая лист Excel, который вы хотите скрыть вкладку ленты, затем нажмите Alt + F11. Вставьте новый модуль кода и добавьте следующий код:

Private Sub hide() 
    Application.ExecuteExcel4Macro "Show.ToolBar(""Ribbon"",False) 
End sub 
+0

Я думаю, что вы ошибаетесь на клавиатуре. – JasonMArcher

4

Вы действительно можете скрыть/показать ленты с помощью VBA. Вот пример:

<ribbon startFromScratch="false"> 
 
    <tabs> 
 
    <!-- EXCEL BUILT-IN TABS --> 
 
    <tab idMso="TabDeveloper" getVisible="GetVisible"> 
 
\t <group idMso="GroupCode" visible="true"/> 
 
\t <group idMso="GroupAddins" visible="true"/> 
 
\t <group idMso="GroupControls" visible="true"/> 
 
\t <group idMso="GroupXml" visible="true"/> 
 
\t <group idMso="GroupModify" visible="true"/> 
 
\t </tab> 
 
    </tabs> 
 
</ribbon>

  1. Setup файл XML.

  2. Настройка вашего сценария VBA. Sub GetVisible(control As IRibbonControl, ByRef MakeVisible) Select Case control.ID Case "TabDeveloper": MakeVisible = True Case "TabHome": MakeVisible = True Case "TabInsert": MakeVisible = True Case "TabPageLayoutExcel": MakeVisible = True Case "TabFormulas": MakeVisible = True Case "TabData": MakeVisible = True Case "TabReview": MakeVisible = True Case "TabView": MakeVisible = True Case "TabAddIns": MakeVisible = True Case "TabBackgroundRemoval": MakeVisible = True End Sub

  3. Загрузить этот файл для списка идентификаторов управления для MS Office. http://www.microsoft.com/en-us/download/details.aspx?displaylang=en&id=6627

Совет: Не забудьте закрыть рабочую книгу Excel, которая включает в себя ленту редактируемого перед редактированием файла XML ленты. Я обнаружил, что он иногда стирает мой код VBA (я не знаю, почему, это просто так).

0

Попробуйте XML для Excel Я проверил:

<customUI xmlns="http://schemas.microsoft.com/office/2006/01/customui"> 
<ribbon startFromScratch="false"> 
<tabs> 
    <tab idMso="TabHome" visible="false" /> 
    <tab idMso="TabInsert" visible="false" /> 
    <tab idMso="TabFormulas" visible="false" /> 
    <tab idMso="TabData" visible="false" /> 
    <tab idMso="TabReview" visible="false" /> 
    <tab idMso="TabView" visible="false" /> 
    <tab idMso="TabDeveloper" visible="false" /> 
</tabs> 
</ribbon> 
</customUI> 

XML Code

Результат:
ExcelApp

Смежные вопросы