Товарищи, ткните носом в ссылку на эту тему. поиск мало помогает. Нужно создать надстройку с 2 кнопками для запуска 2 макросов. Офис 2007. для себя всегда кнопы макросов выводил на панель, а тут отделу налогооблажения надо было конвертер xls в xml. - для них нужна надстройка.
Пользователь
Сообщений: Регистрация: 21.12.2012
29.08.2011 16:11:56
в поиске по форуму нашел
"Елена, Вас в гугле забанили? Поиск по "excel 2007 создание надстройки", первая ссылка (не считая ссылки на MSDN):
=31031= _______________________
эта штука - не работает - пробовал - кнопки не добавляются.
Пользователь
Сообщений: Регистрация: 22.12.2012
29.08.2011 16:19:43
Гляньте этот файл:
Пользователь
Сообщений: Регистрация: 21.12.2012
29.08.2011 16:23:46
Hugo, спасибо - то что нужно. Тему можно закрыть/удалить.
Пользователь
Сообщений: Регистрация: 22.12.2012
29.08.2011 16:25:14
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-одна кнопка
Чебурашка стал символом олимпийских игр. А чего достиг ты? Тишина - самый громкий звук
Пользователь
Сообщений: Регистрация: 21.12.2012
30.08.2011 09:26:50
На будущее может кому пригодиться. Добавление кнопок на панель инструментов без макросов. Сделал так.
1)По ссылке Hugo - скачал надстройку ribon.xlam. из копилки идей () взял файл customUI.xml
2)отредактировал его в блокноте - оставил только 2 кнопки со своими именами и указал имена своих макросов.
3)открыл через архиватор ribon.xlam и положил в папку customUI - свой customUI.xml
4) в редакторе visual basic переместил в надстройку свои макросы. при этом макросы должны быть объявлены как Sub macros (control As IRibbonControl) подробнее () имена макросов должны быть такими же как указаны в customUI.xml
5) Сохранил все сделанные изменения.
Теперь при запуске надстройки - появляется панелька с нужными мне кнопками.
Пользователь
Сообщений: Регистрация: 01.01.1970
30.08.2011 10:22:47
Можно в файл надстройки вложить нужную панель инструментов. При открытии надстройки на другом компутере появится эта панель на экране либо в списке панелей.
eltekhproekt.com.ua
Пользователь
Сообщений: Регистрация: 22.12.2012
30.08.2011 11:22:26
>>Можно в файл надстройки вложить нужную панель инструментов. При открытии надстройки на другом компутере появится эта панель на экране либо в списке панелей.
код, кот. я выкладывал, это и подразумевает : )
Чебурашка стал символом олимпийских игр. А чего достиг ты? Тишина - самый громкий звук
Пользователь
Сообщений: Регистрация: 01.01.1970
30.08.2011 12:17:35
Зачем для этого делать макрос, прописывать в нем кнопки, их свойства, если возможностями Excel это делается в два нажатия?
eltekhproekt.com.ua
aendrous@gmail.com
Гость
06.08.2012 18:00:47
{quote}{login=egonomist}{date=30.08.2011 09:26}{thema=Как я сделал}{post}На будущее может кому пригодиться. Добавление кнопок на панель инструментов без макросов... 4) в редакторе visual basic переместил в надстройку свои макросы. при этом макросы должны быть объявлены как Sub macros (control As IRibbonControl) подробнее () имена макросов должны быть такими же как указаны в customUI.xml {/post}{/quote} Надстройка появляется - макрос назначенный на кнопку из настройки не работает! Можно поподробнее, в какой Module написать макрос, чтоб он работал?
Пользователь
Сообщений: Регистрация: 23.12.2012
06.08.2012 23:21:41
Здесь есть необходимый код для создания панели инструментов надстройки, и пример файла XLA, формирующего панель инструментов при запуске:
Кнопки, правда, не такие большие и красивые, как в Excel 2007\2010, но зато работает во всех версиях Excel
Пользователь
Сообщений: Регистрация: 21.12.2012
07.08.2012 09:00:12
Доброе утро, про создании надстройки макросом - минус то что она создается во вкладке надстройки, а не отдельной панелькой. плюсы - лучше защита от чужих глаз. Для своих нужд ковыряюсь с 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 ...
Пользователь
Сообщений: Регистрация: 21.12.2012
09.08.2012 08:57:15
пробовал я в свое время через книгу excell\xlstart - в итоге никто этой надстройкой не пользовался, так как при автоматическом открытии на других компьютерах книга открывалась с visible=true - то есть открывалась постоянна книга с макросами - очень напрягало. Надстройку можно создать и без вкладок. Просто книгу с макросами сохраните как xlam и все. Надстройку можно программно скопировать в application data\microsoft\excell\addins и подключить ее тоже можно программно (just google it).
По вашему последнему вопросу - можно сделать xlsb, на событие открытие книги повесить макрос создания кнопки в панели инструментов (см пост от EducatedFool), в итоге при отрытии во вкладке надстройки будет ваша кнопка с вашим макросом.
Вариантов много. Для своих коллег делаю автоматическое копирование в папку с надстройками, а они уж сами по надобности подключают их.
Пользователь
Сообщений: Регистрация: 21.12.2012
27.08.2012 10:41:14
Выкладываю результаты своих потугов в создании надстроек. Долго пришлось искать нужную информацию по всему интернету. возможно кому то пригодится.
Написал надстройку google translate - в панели инструментов появляется вкладка где можно вводить текст и выбирать направление перевода, результат перевода отображается так же в панели инструментов в текстовом окне.(для перевода использовал функцию от EducatedFool, спасибо ему большое за код ) + добавил информер gismeteo с прогнозом работы на сутки. использовал лейблы. Весь xml и vba снабжен подробными комментариями что куда ставить чтоб работало.
p.s:в архиве две надстройки google_translate.xlam с переводчиком и погодой, google_tranclate0.xlam только с переводчиком при желании установить надстройку только с переводчиком надо будет 0 из названия убрать (жесткая привязка к названию книги google_translate.xlam)
p.p.s:код возможно сыроват (главное показать принцип), буду рад любым предложениям по оптимизации и доработке.
Если хотите, можете запостить свою надстройку в тоже ветке.
Чебурашка стал символом олимпийских игр. А чего достиг ты? Тишина - самый громкий звук
Пользователь
Сообщений: Регистрация: 21.12.2012
27.08.2012 12:00:08
nerv, спасибо за класс, возьму на вооружение. #67666#
Пользователь
Сообщений: Регистрация: 21.12.2012
28.08.2012 16:26:33
обновил надстройку, прикрутил восстановление рибона + сохранение параметров выбранного города. залил сюда здесь тоже копию оставлю, на excelworld не могу залогиниться :(