Профессиональные приемы работы в Microsoft Excel

Обмен опытом => Шаблоны, надстройки, утилиты... * NEW => Тема начата: Коша от 08.06.2008, 12:24

Название: Создание надстроек
Отправлено: Коша от 08.06.2008, 12:24
Не могли бы вы рассказать про создание надстроек в MS Excel? Чтобы при подключении создавалась новая панель с нужными кнопками на которые подвешены макросы. Если есть какие то ссылки для чайников, пожалуйста...    :'(


P.S. Ооооооочень надо, оооооочень срочно....
Название: Re: Создание надстроек
Отправлено: Шпец Докапыч от 08.06.2008, 18:44
Цитата: Коша от 08.06.2008, 12:24
Не могли бы вы рассказать про создание надстроек в MS Excel?

Расскажу, немного :) Создание самой надстройки и её прикручивание проблем не составляет: сохраняем книгу как .xla, после чего через обзор в списке надстроек можно выбирать. В нашей надстройке нужен макрoc, который, при её инициализации, будут добавлять панельки, на панельки кнопочки, на кнопочки коды... За это отвечает Workbook_AddinInstall. Подробнее по ссылкам:
Название: Re: Создание надстроек
Отправлено: Шпец Докапыч от 08.06.2008, 19:36
Цитата: Шпец Докапыч от 08.06.2008, 18:44
В нашей надстройке нужен макрoc, который, при её инициализации, будут добавлять панельки, на панельки кнопочки, на кнопочки коды...

Вот ещё, в нагрузку, простейший пример:
Private Sub Workbook_AddinInstall()
With Application.CommandBars("Worksheet Menu Bar").Controls 'работаем с менюшкой
  Set SH = .Add(Type:=msoControlPopup, Before:=.Count) 'создаём новый пункт
  SH.Caption = "ШпецМеню" 'обзываем его
End With
  Set ПУНКТ = SH.Controls.Add(Type:=msoControlButton, Before:=1) 'добавляем подпункт
      ПУНКТ.Caption = "ШамыйПервый" 'обзываем его
      ПУНКТ.OnAction = "НашаНадстройка.xla!Макрос1" 'привязываем код
End Sub


PS: Также следует научиться убирать за собой после отключения надстройки :)
Название: Re: Создание надстроек
Отправлено: Коша от 08.06.2008, 19:47
Спасибо, Шпец :)
Название: Re: Создание надстроек
Отправлено: Коша от 08.06.2008, 22:33
Кстати, может ещё поможете на счёт панелек и кнопочек? Как их сделать, я поняла, только один вопрос.

'Создание кнопок с рисунком
        With .Add(Type:=msoControlButton, ID:=???)
             .TooltipText = "Формирование списков"
             .OnAction = "FormSp"
        End With


Из того, что я вычитала ID это номер картинки на кнопке. Может есть какой-то список соответствий? Сколько ни гигулила ничего такого не нашла, а сидеть и подбирать цифирки это слишком долго...
Название: Re: Создание надстроек
Отправлено: Шпец Докапыч от 08.06.2008, 23:44
Может, Вам понравится больше такой вариант:
      ПУНКТ.Picture = stdole.StdFunctions.LoadPicture("C:\МояКартинка.bmp")

Причём картинка не обязательно должна быть 16х16. С высоким расширением она становится лишь ярче  ;)
Название: Re: Создание надстроек
Отправлено: Коша от 09.06.2008, 00:01
Спасибо ещё раз :) Будем пробовать...
Название: Re: Создание надстроек
Отправлено: Коша от 16.06.2008, 00:32
Появилась проблема с надстройкой... Прикручиваю нормально, панельку рисует, но не запускает макросы по нажатию на кнопки.
Выдаёт ошибку: Object variable or with block variable not set...
Выкладываю надстройку и файл, который должен идти вместе с ней для её работы...
Название: А у нас опять холодно....
Отправлено: elenaorlova от 27.05.2010, 08:53
Да, есть над чем подумать....
Название: Re: Создание надстроек
Отправлено: Raikhman от 14.10.2011, 23:56

Советую заглянуть на сайт http://excelvba.ru (http://excelvba.ru)
Там серьезный человек, который делает такие штучки под заказ, или, подскажет реально.
Название: Re: Создание надстроек
Отправлено: EducatedFool от 16.10.2011, 02:14
Раз уж тут прорекламировали мой сайт, дам и ссылку на пример надстройки, создающей при запуске панель инструментов:
http://excelvba.ru/tools/CommandBar
Название: Re: Создание надстроек
Отправлено: Prist от 29.08.2014, 16:21
Дополню ссылкой на статью с описанием создания надстроек:
Как создать свою надстройку? (http://www.excel-vba.ru/chto-umeet-excel/kak-sozdat-svoyu-nadstrojku/)