![]() |
|
|
Регистрация Восстановить пароль |
Регистрация | Задать вопрос |
Заплачу за решение |
Новые сообщения |
Сообщения за день |
Расширенный поиск |
Правила |
Всё прочитано |
![]() |
|
Опции темы | Поиск в этой теме |
![]() |
#1 |
Пользователь
Регистрация: 28.02.2007
Сообщений: 18
|
![]()
Доброго времени суток!
Написал макрос. Оформил его меню таким образом: Sub addMenu() ' Если меню с именем MyBar есть, удаляю его For Each MyBar In CommandBars If MyBar.Name = "MyBar" Then MyBar.Delete Exit For End If Next MyBar With CommandBars.Add(Name:="MyBar", MenuBar:=False, Temporary:=False) With .Controls.Add(Type:=msoControlButto n) .Style = msoButtonCaption .Caption = "Нажми на меня" .OnAction = "myAction" .Visible = True End With .Visible = True End With End Sub Sub myAction() MsgBox "Hellow orld" End Sub Все работает как надо. Но есть один неприятный момент: при нажатии на кнопку меню из других книг открывается исходный файл, в котором выполняется макрос myAction. Можно ли каким-нибудь образом противодейстовать этому? Например, недопустить открытия файла или скрывать его (при нажатии на пункт меню) и закрытию по окончании выполнения скрипта myAction? Все мои попытки скрытия открывающейся книги не увенчались успехом. Excel 2003 / 2007 |
![]() |
![]() |
![]() |
#2 |
Старожил
Регистрация: 05.12.2007
Сообщений: 4,180
|
![]()
А Вам нужен доступ к этому макросу из других книг?
Если нужен, то можно либо создать надстройку, либо поместить файл с макросом в персональную книгу макросов. А если не нужен, то лучше, при открытии файла создавать свое меню, а при закрытии удалять его.
Чем шире угол зрения, тем он тупее.
|
![]() |
![]() |
![]() |
#3 |
Пользователь
Регистрация: 28.02.2007
Сообщений: 18
|
![]()
Именно. Нужно чтобы элемент меню был доступен из всех книг. Вариант "при закрытии удалять" не подходит.
В персональную книгу макросов записывать нельзя - доступ к папке только для чтения и сунуть туда ничего не удастся. У меня есть файл, который выполняет такой же функционал как и мой скрипт, там все работает. Однако исходный текст подсмотреть не могу - требует пароль на открытие. А как программно создать надстройку? Вы не могли бы скинуть пример? |
![]() |
![]() |
![]() |
#4 | ||
Программист VBA
СуперМодератор
Регистрация: 13.07.2008
Сообщений: 6,858
|
![]() Цитата:
Цитата:
Например, Файл - Сохранить как... - Надстройка Microsoft Excel (.xla) Можно оставить и расширение xls - достаточно в свойствах книги (выделяем в редакторе VBA пункт ЭтаКнига, нажимаем F4) изменить значение свойства IsAddin на TRUE После этого листы книги будут скрыты. |
||
![]() |
![]() |
![]() |
#5 |
Старожил
Регистрация: 05.12.2007
Сообщений: 4,180
|
![]()
Сохраните Ваш файл с макросом (макросами) в виде надстройки (с расширением ".xla"). Затем, либо подключите ее вручную, через "Сервис" -> "Надстройки..." (для Excel 2003), либо программно, например, так:
Код:
Чем шире угол зрения, тем он тупее.
|
![]() |
![]() |
![]() |
#6 |
Пользователь
Регистрация: 28.02.2007
Сообщений: 18
|
![]()
Спасибо за исчерпывающие ответы!
|
![]() |
![]() |
![]() |
#7 |
Пользователь
Регистрация: 28.02.2007
Сообщений: 18
|
![]()
Подскажите пожалуйста как можно подключить меню к надстройке?
Где можно почитать толковые статьи по этому поводу? Может быть я не правильно формулирую вопрос, но гугл дает не совсем ожидаемые результаты. |
![]() |
![]() |
![]() |
#8 | |
Программист VBA
СуперМодератор
Регистрация: 13.07.2008
Сообщений: 6,858
|
![]() Цитата:
Вот весь код: [code] Код:
|
|
![]() |
![]() |
![]() |
#9 |
Пользователь
Регистрация: 28.02.2007
Сообщений: 18
|
![]()
Спасибо большое за помощь!
|
![]() |
![]() |
![]() |
![]() |
||||
Тема | Автор | Раздел | Ответов | Последнее сообщение |
Создание меню для сайтов | iukash | Софт | 1 | 30.06.2009 02:57 |
Создание пользовательских меню | Наталья Ивановна | Microsoft Office Excel | 2 | 26.05.2009 19:27 |
Создание меню | StudentPolitech | Общие вопросы C/C++ | 8 | 12.12.2008 10:33 |
Создание своего меню в Exele | W50586 | Microsoft Office Excel | 2 | 23.06.2008 15:20 |
Создание меню на С | KsandR | Общие вопросы C/C++ | 5 | 13.12.2007 21:34 |