powered by simpleCommunicator - 2.0.61     © 2026 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / Visual Basic [игнор отключен] [закрыт для гостей] / Вопрос по надстройке.
7 сообщений из 7, страница 1 из 1
Вопрос по надстройке.
    #36011512
vlad_olad
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Скачал надсройку не помню откуда. Запустил, чтобы посмотреть как кнопки создавать, но ничего не нашел. Короче надстройка создает 2 кнопки под определенные макросы. Тут не command bar.
...
Рейтинг: 0 / 0
Вопрос по надстройке.
    #36012221
ZVI
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Надо полагать, что обещанный в теме вопрос звучит так: откуда эта панель взялась, если в коде ничего нет?
Получите неадекватной краткости ответ :-)

Панель создана вручную и вложена в книгу, все это делается из меню: Вид – Панели инструментов – Настройка – вкладка Панели инструментов – кнопки Создать и Вложить.

При загрузке в Excel книги со встроенной панелью инструментов копия встроенной в книгу панели инструментов становится принадлежностью Excel, если только в нем нет панели инструментов с таким же именем.

Недостатки такого решения:

1. Копия панели инструментов остается жить в Excel-е, даже если книга (надстройка) не загружена. И эту панель когда-то придется удалять, например, вручную.

2. Но хуже всего то, что к имени макроса (.OnAction=”ИмяМакроса”) кнопки такой панели Excel привязывает путь к той книге (надстройке), откуда была изначально скопирована панель. Если впоследствии надстройка будет перемещена и загружена из другой папки, то макросы с панели уже вызываться не будут. Потребуется вручную удалять панель и перезапускать Excel. Часто про эту особенность либо не знают, либо забывают.
Типичная ситуация: решили сначала посмотреть, что за надстройка, скопировали во временную папку, проверили – понравилась, перенесли или скопировали куда положено и получили проблему.

Для исключения 2-й проблемы нужно записать такой код в модуль ЭтаКнига надстройки со встроенной панелью:

Код: plaintext
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
18.
19.
20.
21.
Private Sub Workbook_Open()
  On Error Resume Next
  With Application.CommandBars("ИмяПанели")
    .Visible = True
    .Controls( 1 ).OnAction = "ИмяМакроса1"
    .Controls( 2 ).OnAction = "ИмяМакроса2"
    ' … и т.д.
  End With
End Sub

Private Sub Workbook_AddinUninstall()
  On Error Resume Next
  Application.CommandBars("ИмяПанели").Delete
End Sub

Private Sub Workbook_AddinInstall()
  With Application.CommandBars("ИмяПанели")
    .Visible = True
    .Position = msoBarTop
  End With
End Sub
...
Рейтинг: 0 / 0
Вопрос по надстройке.
    #36012946
vlad_olad
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Спасибо. А как панель добавит в 07 Excel-e не знаешь случайно?
...
Рейтинг: 0 / 0
Вопрос по надстройке.
    #36014175
ZVI
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
В Excel2007 панель появится на ленте. на вкладке Надстройки
...
Рейтинг: 0 / 0
Вопрос по надстройке.
    #36016370
vlad_olad
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Ты не понял, а как там кнопки такие создать???
...
Рейтинг: 0 / 0
Вопрос по надстройке.
    #36016558
ZVI
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Чё тут понимать? (© Иван Васильевич :)
Как создать такую панель, про которую спрашивалось, написано в моем первом ответе.
Где она появится в Excel2007 – см. второй ответ.

Панели инструментов в Excel2007, в отличие от предыдущих версий, могут быть только на вкладках ленты (Ribbon). Существуют разные способы добавления/удаления элементов на Ribbon, например, править XML –код или использовать специальные утилиты, но это отдельная тема, да и поиск “Ribbon Creator” выдаст множество ссылок.
...
Рейтинг: 0 / 0
Вопрос по надстройке.
    #36016578
ZVI
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
ZVIЧё тут понимать? (© Иван Васильевич :)
Как создать такую панель, про которую спрашивалось, написано в моем первом ответе.
Где она появится в Excel2007 – см. второй ответ.

Панели инструментов в Excel2007, в отличие от предыдущих версий, могут быть только на вкладках ленты (Ribbon). Существуют разные способы добавления/удаления элементов на Ribbon, например, править XML –код или использовать специальные утилиты, но это отдельная тема, да и поиск “Ribbon Creator” выдаст множество ссылок.
Добавлю на всякий случай, что панель. которая была встроена в приложенный в первом сообщении файл, средствами Excel2007 создать нельзя. Но ее можно создать в одной из предыдущих версий, загрузить в Excel-2007 и при необходимости сохранить в формате Excel-2007.
...
Рейтинг: 0 / 0
7 сообщений из 7, страница 1 из 1
Форумы / Visual Basic [игнор отключен] [закрыт для гостей] / Вопрос по надстройке.
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]