Страницы: 1
RSS
создание надстройки
 
Товарищи, ткните носом в ссылку на эту тему. поиск мало помогает.  
Нужно создать надстройку с 2 кнопками для запуска 2 макросов.    
Офис 2007.  
для себя всегда кнопы макросов выводил на панель, а тут отделу налогооблажения надо было конвертер xls в xml. - для них нужна надстройка.
 
в поиске по форуму нашел  
 
"Елена, Вас в гугле забанили?  
Поиск по "excel 2007 создание надстройки", первая ссылка (не считая ссылки на MSDN):  
http://forum.msexcel.ru/microsoft_excel/sozdanie_nadstroek-t364.0.html  
 
=31031=  
_______________________  
 
эта штука - не работает - пробовал - кнопки не добавляются.
 
Гляньте этот файл:  
http://www.excelworld.ru/forum/3-78-1
 
Hugo, спасибо - то что нужно.  
Тему можно закрыть/удалить.
 
Private Sub Workbook_Open()  
On Error GoTo L1  
With Application  
   With .CommandBars.Add(Name:="ИМЯ", Position:=msoBarTop, Temporary:=False)  
       With .Controls.Add(Type:=msoControlButton, Temporary:=False)  
           .Caption = "ЗАГОЛОВОК"  
           .Enabled = True  
           .FaceId = 541  
           .OnAction = "AutoFitRowsHeight"  
           .Style = msoButtonIconAndCaption  
           .TooltipText = "ВСПЛЫВАЮЩАЯ ПОДСКАЗКА"  
       End With  
       .Protection = msoBarNoCustomize + msoBarNoResize  
       .Visible = True  
   End With  
End With  
L1: End Sub  
 
1-одна кнопка
Чебурашка стал символом олимпийских игр. А чего достиг ты?
Тишина - самый громкий звук


https://github.com/nervgh
 
На будущее может кому пригодиться. Добавление кнопок на панель инструментов без макросов.  
Сделал так.    
 
1)По ссылке Hugo - скачал надстройку ribon.xlam.    
 из копилки идей (http://www.planetaexcel.ru/forum.php?thread_id=6765) взял файл customUI.xml  
 
2)отредактировал его в блокноте - оставил только 2 кнопки со своими именами и указал имена своих макросов.    
 
3)открыл через архиватор ribon.xlam и положил в папку customUI - свой customUI.xml    
 
4) в редакторе visual basic переместил в надстройку свои макросы. при этом макросы должны быть объявлены как    
Sub macros (control As IRibbonControl)  
подробнее (http://www.planetaexcel.ru/forum.php?thread_id=6765)  
имена макросов должны быть такими же как указаны в customUI.xml  
 
5) Сохранил все сделанные изменения.  
 
Теперь при запуске надстройки - появляется панелька с нужными мне кнопками.
 
Можно в файл надстройки вложить нужную панель инструментов. При открытии надстройки на другом компутере появится эта панель на экране либо в списке панелей.
eltekhproekt.com.ua
 
>>Можно в файл надстройки вложить нужную панель инструментов. При открытии надстройки на другом компутере появится эта панель на экране либо в списке панелей.  
 
код, кот. я выкладывал, это и подразумевает : )
Чебурашка стал символом олимпийских игр. А чего достиг ты?
Тишина - самый громкий звук


https://github.com/nervgh
 
Зачем для этого делать макрос, прописывать в нем кнопки, их свойства, если возможностями Excel это делается в два нажатия?
eltekhproekt.com.ua
 
{quote}{login=egonomist}{date=30.08.2011 09:26}{thema=Как я сделал}{post}На будущее может кому пригодиться. Добавление кнопок на панель инструментов без макросов...  
4) в редакторе visual basic переместил в надстройку свои макросы. при этом макросы должны быть объявлены как    
Sub macros (control As IRibbonControl)  
подробнее (http://www.planetaexcel.ru/forum.php?thread_id=6765)  
имена макросов должны быть такими же как указаны в customUI.xml  
{/post}{/quote}  
Надстройка появляется - макрос назначенный на кнопку из настройки не работает!  
Можно поподробнее, в какой Module написать макрос, чтоб он работал?
Каждое препятствие это новая возможность чему-то научиться.
 
Здесь есть необходимый код для создания панели инструментов надстройки,  
и пример файла XLA, формирующего панель инструментов при запуске:  
 
http://excelvba.ru/tools/CommandBar  
 
Кнопки, правда, не такие большие и красивые, как в Excel 2007\2010,  
но зато работает во всех версиях Excel
 
Доброе утро, про создании надстройки макросом - минус то что она создается во вкладке надстройки, а не отдельной панелькой. плюсы - лучше защита от чужих глаз.    
Для своих нужд ковыряюсь с xml.    
макросы надо вставлять в отдельный модуль    
в названии макроса в скобках указать что это контрол ленты    
public sub Pushme (control As IRibbonControl)  
в атаче файл с примером - надстройка с кнопкой и с выпадающим списком.  
посмотрите через архиватор код customUI, макрос обработки событий выпадающего списка в module3, макросы нажатия кнопок в module1.
 
спасибо други!  
Заработала кнопка с макросом из надстройки.  
Причина  - по привычке писал sub без private. Также в custom ui.xml был пробел после названия макроса после ковычки " и перед слэшем - внимательнее редактировать xml.  
 
Единственное НО - я думал достаточно положить xlam application data\microsoft\excell\addins чтоб автоматом надстройка всегда запускалась у пользователя, а надо еще и прописывать ее в екселе в надстройках. Да и вкладка тоже не нужна для пары макросов (для пакета приложений - идеально) - удобнее все ж пользоваться панелью быстрого запуска, записать пользователю xlsb файл в excell\xlstart и добавитькнопку с макросом на панель быстрого запуска.  
 
Вот если б можно было исталлировать кнопку быстрого запуска с макросом пользователю через xlsb ...
Каждое препятствие это новая возможность чему-то научиться.
 
пробовал я в свое время через книгу excell\xlstart - в итоге никто этой надстройкой не пользовался, так как при автоматическом открытии на других компьютерах книга открывалась с visible=true - то есть открывалась постоянна книга с макросами - очень напрягало.    
Надстройку можно создать и без вкладок. Просто книгу с макросами сохраните как xlam и все. Надстройку можно программно скопировать в application data\microsoft\excell\addins и подключить ее тоже можно программно (just google it).  
 
По вашему последнему вопросу - можно сделать xlsb, на событие открытие книги повесить макрос создания кнопки в панели инструментов (см пост от EducatedFool), в итоге при отрытии во вкладке надстройки будет ваша кнопка с вашим макросом.  
 
Вариантов много. Для своих коллег делаю автоматическое копирование в папку с надстройками, а они уж сами по надобности подключают их.
 
Выкладываю результаты своих потугов в создании надстроек. Долго пришлось искать нужную информацию по всему интернету. возможно кому то пригодится.  
 
Написал надстройку google translate - в панели инструментов появляется вкладка где можно вводить текст и выбирать направление перевода, результат перевода отображается так же в панели инструментов в текстовом окне.(для перевода использовал функцию от EducatedFool, спасибо ему большое за код http://excelvba.ru/code/GoogleTranslate )    
+  
добавил информер gismeteo с прогнозом работы на сутки.  
использовал лейблы.  
Весь xml и vba снабжен подробными комментариями что куда ставить чтоб работало.  
 
p.s:в архиве две надстройки google_translate.xlam с переводчиком и погодой,  
google_tranclate0.xlam только с переводчиком  
при желании установить надстройку только с переводчиком надо будет 0 из названия убрать (жесткая привязка к названию книги google_translate.xlam)  
 
p.p.s:код возможно сыроват (главное показать принцип), буду рад любым предложениям по оптимизации и доработке.
 
egonomist, может будет интересно http://www.excelworld.ru/forum/3-2168-1  
 
Если хотите, можете запостить свою надстройку в тоже ветке.
Чебурашка стал символом олимпийских игр. А чего достиг ты?
Тишина - самый громкий звук


https://github.com/nervgh
 
nerv, спасибо за класс, возьму на вооружение.  
#67666#
 
обновил надстройку, прикрутил восстановление рибона + сохранение параметров выбранного города.  
залил сюда http://www.sql.ru/forum/actualthread.aspx?bid=46&tid=965161  
здесь тоже копию оставлю, на excelworld не могу залогиниться :(
Страницы: 1
Наверх