Страницы: 1
RSS
макрос для свертывания ленты Excel 2007
 
Здравствуйте.  
Возможно ли создать макрос для свертывания ленты Excel 2007, или создать условие, если лента свернута то действие не происходит (в смысле чтобы не развернуть ленту) если лента развернута, то происходит развертывание.
 
{quote}{login=segail}{date=26.07.2010 09:14}{thema=макрос для свертывания ленты Excel 2007}{post}Здравствуйте.  
Возможно ли создать макрос для свертывания ленты Excel 2007, или создать условие, если лента свернута то действие не происходит (в смысле чтобы не развернуть ленту) если лента развернута, то происходит свертывание.{/post}{/quote}
 
{quote}{login=segail}{date=26.07.2010 09:14}{thema=макрос для свертывания ленты Excel 2007}{post}... если лента свернута то действие не происходит (в смысле чтобы не развернуть ленту) если лента развернута, то происходит развертывание.{/post}{/quote}  
1. Для усвоения - "если мысль не идет в ногу с речью, то стоит думать чуть дольше, прежде чем молвить слово"...  
2. На дружбанском форуме вам ответили - "Все уже придумано до нас... Двойной клик ЛКМ по риббонам или на них ПКМ "Свернуть ленту"..."  
3. Заглянем в Правила и пример соответственный...  
Z.
 
Да я знаю что придумали. Макрос нужен. Если это выполняется только в ручную, тогда вопросов нет…
 
{quote}{login=Z}{date=26.07.2010 09:31}{thema=Re: макрос для свертывания ленты Excel 2007}{post}{quote}{login=segail}{date=26.07.2010 09:14}{thema=макрос для свертывания ленты Excel 2007}{post}... если лента свернута то действие не происходит (в смысле чтобы не развернуть ленту) если лента развернута, то происходит развертывание.{/post}{/quote}  
1. Для усвоения - "если мысль не идет в ногу с речью, то стоит думать чуть дольше, прежде чем молвить слово"...  
2. На дружбанском форуме вам ответили - "Все уже придумано до нас... Двойной клик ЛКМ по риббонам или на них ПКМ "Свернуть ленту"..."  
3. Заглянем в Правила и пример соответственный...  
Z.{/post}{/quote}  
EducatedFool предлагает данный макрос, но открытая форма VBA не дает выполнить его.  
И еще если изначально лента будет развернута, то данный макрос ее закроет, значит нужно условие.  
 
Sub Лента()  
   Application.SendKeys "^{F1}"  
End Sub
 
Извиняюсь, запутался.  
Если изначально лента будет свернута, то данный макрос ее раскроет, значит нужно условие.
 
Код ниже будет работать и из-под формы:  
 
' Спрятать  
Sub HideRibbon()  
Application.ExecuteExcel4Macro "SHOW.TOOLBAR(""Ribbon"",False)"  
End Sub  
 
' Открыть  
Sub ShowRibbon()  
Application.ExecuteExcel4Macro "SHOW.TOOLBAR(""Ribbon"",True)"  
End Sub
 
Я такой код применяю в одном из действий.  
Но возникла ситуация скрыть ленту, если она раскрыта…
 
{quote}{login=The_Prist}{date=26.07.2010 10:37}{thema=Re: }{post}{quote}{login=ZVI}{date=26.07.2010 10:35}{thema=}{post}Код ниже будет работать...{/post}{/quote}Я раньше :-)  
 
P.S. Наверное потому, что у меня строк меньше - лень имена процедурам давать было...{/post}{/quote}Заливал чай в чашку - потерял минуту :-)  
Вообще-то, решение уже приводилось раньше.  
 
Чтобы сказать что-нибудь новое, скажу, что в Excel 2007 есть спрятанная вкладка ленты (с т.з кода это панель), на которую можно программно вытащить все спрятанные меню предыдущей версии и даже контролы стандартной или иной панели от Excel-2003. Такая возможность следует из того, что поддерживается совместимость кода для предыдущих версий. Пару лет назад игрался с этим, но вряд ли теперь найду следы.
 
{quote}{login=segail}{date=26.07.2010 10:56}{thema=}{post}Я такой код применяю в одном из действий.  
Но возникла ситуация скрыть ленту, если она раскрыта…{/post}{/quote}  
Вызовите HideRibbon()
 
Вот пример для формы
 
{quote}{login=ZVI}{date=26.07.2010 11:00}{thema=Re: Re: }{post}Чтобы сказать что-нибудь новое, скажу, что в Excel 2007 есть спрятанная вкладка ленты (с т.з кода это панель), на которую можно программно вытащить все спрятанные меню предыдущей версии и даже контролы стандартной или иной панели от Excel-2003. Такая возможность следует из того, что поддерживается совместимость кода для предыдущих версий. Пару лет назад игрался с этим, но вряд ли теперь найду следы.{/post}{/quote}  
Приложил иллюстрацию к описанному выше. На вкладке "Надстройки" создается меню Excel 2003, а также добавляются страшненькие с виду, но добрые внутри кнопки панелей Excel 2003, состав которых можно оперативно менять из VBA.  
 
Может быть полезно тем, кто никак не отвыкнет от интерфейса меню Excel 2003
 
В познавательных целях  в виде надстройки приложил вариант с меню Excel-2003 и 2-мя панелями: "Стандартная" и "Форматирование", все на вкладке "Надстройки" ленты. Код открыт.
 
А если использовать код  
 
Sub HideRibbon()  
Application.ExecuteExcel4Macro "SHOW.TOOLBAR(""Ribbon"",False)" ‘Скрыть панель              
           Application.ScreenUpdating = False  
           Me.Hide            
           Sheets("Лист1").PrintPreview ‘Предворительный просмотр  
‘Открыть команду печать    
           'дальше код будет выполняться только после закрытия окна предварительного просмотра  
           Application.ScreenUpdating = True  
           Me.Show  
End Sub  
 
Возможно ли открыть только одну команду печать?
 
{quote}{login=segail}{date=27.07.2010 06:32}{thema=}{post}А если использовать код  
 
Sub HideRibbon()  
Application.ExecuteExcel4Macro "SHOW.TOOLBAR(""Ribbon"",False)" ‘Скрыть панель              
           Application.ScreenUpdating = False  
           Me.Hide            
           Sheets("Лист1").PrintPreview ‘Предворительный просмотр  
‘Открыть команду печать    
           'дальше код будет выполняться только после закрытия окна предварительного просмотра  
           Application.ScreenUpdating = True  
           Me.Show  
End Sub  
 
Возможно ли открыть только одну команду печать?{/post}{/quote}  
Трудно отвечать на вопрос, который не понимаешь :-)  
 
Уточните, пожалуйста, следующее:  
1. Решена ли проблема, по которой изначально задавался вопрос про Ribbon?  
2. Зачем приведен пример кода?  
3. Что означает "открыть команду печать"?  
 
Если "открыть команду печать" означает программный вызов диалога печати, то делается это так:    
 
Sub Test()  
 Application.Dialogs(8).Show  
End Sub
Страницы: 1
Читают тему
Наверх