|
|
Регистрация Восстановить пароль |
Повторная активизация e-mail |
Регистрация | Задать вопрос |
Заплачу за решение |
Новые сообщения |
Сообщения за день |
Расширенный поиск |
Правила |
Всё прочитано |
|
Опции темы | Поиск в этой теме |
19.10.2009, 08:26 | #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 |
19.10.2009, 08:45 | #2 |
Старожил
Регистрация: 05.12.2007
Сообщений: 4,180
|
А Вам нужен доступ к этому макросу из других книг?
Если нужен, то можно либо создать надстройку, либо поместить файл с макросом в персональную книгу макросов. А если не нужен, то лучше, при открытии файла создавать свое меню, а при закрытии удалять его.
Чем шире угол зрения, тем он тупее.
|
19.10.2009, 09:28 | #3 |
Пользователь
Регистрация: 28.02.2007
Сообщений: 18
|
Именно. Нужно чтобы элемент меню был доступен из всех книг. Вариант "при закрытии удалять" не подходит.
В персональную книгу макросов записывать нельзя - доступ к папке только для чтения и сунуть туда ничего не удастся. У меня есть файл, который выполняет такой же функционал как и мой скрипт, там все работает. Однако исходный текст подсмотреть не могу - требует пароль на открытие. А как программно создать надстройку? Вы не могли бы скинуть пример? |
19.10.2009, 09:45 | #4 | ||
Программист VBA
СуперМодератор
Регистрация: 13.07.2008
Сообщений: 6,856
|
Цитата:
Цитата:
Например, Файл - Сохранить как... - Надстройка Microsoft Excel (.xla) Можно оставить и расширение xls - достаточно в свойствах книги (выделяем в редакторе VBA пункт ЭтаКнига, нажимаем F4) изменить значение свойства IsAddin на TRUE После этого листы книги будут скрыты. |
||
19.10.2009, 09:54 | #5 |
Старожил
Регистрация: 05.12.2007
Сообщений: 4,180
|
Сохраните Ваш файл с макросом (макросами) в виде надстройки (с расширением ".xla"). Затем, либо подключите ее вручную, через "Сервис" -> "Надстройки..." (для Excel 2003), либо программно, например, так:
Код:
Чем шире угол зрения, тем он тупее.
|
19.10.2009, 11:45 | #6 |
Пользователь
Регистрация: 28.02.2007
Сообщений: 18
|
Спасибо за исчерпывающие ответы!
|
19.10.2009, 15:23 | #7 |
Пользователь
Регистрация: 28.02.2007
Сообщений: 18
|
Подскажите пожалуйста как можно подключить меню к надстройке?
Где можно почитать толковые статьи по этому поводу? Может быть я не правильно формулирую вопрос, но гугл дает не совсем ожидаемые результаты. |
19.10.2009, 15:52 | #8 | |
Программист VBA
СуперМодератор
Регистрация: 13.07.2008
Сообщений: 6,856
|
Цитата:
Вот весь код: [code] Код:
|
|
20.10.2009, 18:26 | #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 |