Вопрос № 151674: Уважаемые эксперты! Скажите, возможно ли в VBA (Excell) создание Popup Menu? Если да, то поделитесь плиз примером....
Вопрос № 151.674
Уважаемые эксперты! Скажите, возможно ли в VBA (Excell) создание Popup Menu? Если да, то поделитесь плиз примером.
Отправлен: 24.11.2008, 18:00
Вопрос задал: Maximus777 (статус: Посетитель)
Всего ответов: 2 Мини-форум вопроса >>> (сообщений: 0)
Отвечает: Тесленко Евгений Алексеевич
Здравствуйте, Maximus777! по этой ссылке: Выбор даты.rar 14.05 кб Вы найдете надстройку Excel, пример создания меню. Евгений.
#thank 236569 на номер 1151 (Россия) | Еще номера >>
Вам помогли? Пожалуйста, поблагодарите эксперта за это!
Оценка за ответ: 3 Комментарий оценки: Это малость не то, что мне надо. Меня интересует именно PopupMenu в чистом виде. Т.е. есть VBA проект с формой, на форме label (к примеру). Дык вот как по правой кнопке сделать на этом label'е всплывающее меню? Контрола такого я не нашёл.
Отвечает: Alec Perle
Здравствуйте, Maximus777!
Создаем модуль, в нем:
Код:
Option Explicit
Public MyPopupMenu As CommandBar Public Const MyPopupMenuName = "MyPopupMenu"
'процедуры - обработчики Private Sub MyPopupMenuButton1Click() MsgBox "Нажата кнопка №
1" End Sub
Private Sub MyPopupMenuButton2Click() MsgBox "Нажата кнопка № 2" End Sub
Private Sub MyPopupMenuButton3Click() MsgBox "Нажата кнопка № 3" End Sub
В коде UserForm:
Код:
Option Explicit
Private Sub Label1_MouseUp(ByVal Button As Integer, ByVal Shift As Integer, ByVal X As Single, ByVal Y As Single) If Button = 2 Then 'правая кнопка мыши MyPopupMenu.ShowPopup End If End Sub
Private Sub UserForm_Initialize() On Error Resume Next CommandBars(MyPopupMenuName).Delete 'удаляем меню, если есть, полезно при останове до UserForm_Terminate! Set MyPopupMenu = CommandBars.Add(MyPopupMenuName, msoBarPopup) 'добавляем
всплывающее меню With MyPopupMenu With .Controls.Add(msoControlButton) 'добавляем пункт меню .Caption = "Кнопка № 1" .OnAction = "MyPopupMenuButton1Click" 'обработчик вызова этого пункта End With With .Controls.Add(msoControlPopup) 'добавляем подменю, содержащее два пункта .Caption = "Подменю" With .Controls.Add(msoControlButton) .Caption = "Кнопка
№ 2" .OnAction = "MyPopupMenuButton2Click" End With With .Controls.Add(msoControlButton) .Caption = "Кнопка № 3" .OnAction = "MyPopupMenuButton3Click" End With End With End With End Sub
Private Sub UserForm_Terminate() MyPopupMenu.Delete 'удаляем всплывающее меню End Sub
Ответ отправил: Alec Perle (статус: Студент)
Ответ отправлен: 25.11.2008, 00:06
Как сказать этому эксперту "спасибо"?
Отправить SMS
#thank 236605 на номер 1151 (Россия) | Еще номера >>
Вам помогли? Пожалуйста, поблагодарите эксперта за это!
Оценка за ответ: 5 Комментарий оценки: 5+. Отличный пример. Прям в 10-ку. Я в справке нашёл про CommandBar, но там такое скудное описание, что я так и не понял как это работает. Теперь всё предельно ясно.
Скажите "спасибо" эксперту, который помог Вам!
Отправьте СМС-сообщение с тестом #thank НОМЕР_ОТВЕТА
на короткий номер 1151 (Россия)
Номер ответа и конкретный текст СМС указан внизу каждого ответа.
* Стоимость одного СМС-сообщения от 7.15 руб. и зависит от оператора сотовой связи.
(полный список тарифов)
** При ошибочном вводе номера ответа или текста #thank услуга считается оказанной, денежные средства не возвращаются.
*** Сумма выплаты эксперту-автору ответа расчитывается из суммы перечислений на портал от биллинговой компании.