powered by simpleCommunicator - 2.0.53     © 2025 Programmizd 02
Форумы / Visual Basic [игнор отключен] [закрыт для гостей] / VBA: Групповой обработчик OnClick
9 сообщений из 9, страница 1 из 1
VBA: Групповой обработчик OnClick
    #37978904
SOFT FOR YOU
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
В Delphi к примеру можно нескольким кнопкам задать один обработчик, и в зависимости от Sender делать какое-то действие
нужно реализовать нечто похожее в Excel средствами VBA

только не спрашивайте зачем. надо.
есть много кнопок.

-------------

попутный вопрос
есть ли в VBA что-то типа FindComponent("имя")
...
Рейтинг: 0 / 0
VBA: Групповой обработчик OnClick
    #37978934
Фотография Antonariy
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
В Delphi к примеру можно нескольким кнопкам задать один обработчик, и в зависимости от Sender делать какое-то действие
нужно реализовать нечто похожее в Excel средствами VBA
Разве что программно пробежаться по кнопкам и прицепить их к своему классу с обработчиком. У каждой кнопки будет свой экземпляр класса, но каждый экземпляр может невозбранно обращаться к каким-нибудь глобальным функциям.

есть ли в VBA что-то типа FindComponent("имя")Controls("имя")
...
Рейтинг: 0 / 0
VBA: Групповой обработчик OnClick
    #37979159
Диклевич Александр
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
а еще можно использовать Toolbar контрол для группировки кнопок, и вид компактнее, и потом
Код: vbnet
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
Private Sub Toolbar1_ButtonClick(ByVal Button As MSComctlLib.Button)

    Select Case Button.Key
        Case "Exit"
            Unload Me
            
        Case "Refresh"
            '...
     
    End Select
End Sub


а если не подходит, то перенаправлять CommandButton1,2,3,4..._Click на какую-то общую функцию/процедуру с необходимыми параметрами. что-то типа
Код: vbnet
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
Private Sub CommandButton1_Click()
  HandleButtonsClicks CommandButton1
End Sub

Private Sub CommandButton2_Click()
  HandleButtonsClicks CommandButton2
End Sub

Private Sub HandleButtonsClicks(ByVal Btn As Object) 'или ByRef, и Btn As MSForms.CommandButton, но так глючат свойства некоторые
  Select Case Btn.Caption 'или Btn.Name
 '...

 End Select
End Sub
...
Рейтинг: 0 / 0
VBA: Групповой обработчик OnClick
    #37979209
ЦЦа
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
SOFT FOR YOU,

8197167
...
Рейтинг: 0 / 0
VBA: Групповой обработчик OnClick
    #37980282
SOFT FOR YOU
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
All ,

спасибо
но что то слишком массивно
покомпактнее подходов нет ?
...
Рейтинг: 0 / 0
VBA: Групповой обработчик OnClick
    #37980344
Казанский
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
> нужно реализовать нечто похожее в Excel

Если кнопки - это кнопки с панели "формы" на листе, то им можно назначить один обработчик, а в обработчике определять, какая кнопка нажата, c помощью Application.Caller .
...
Рейтинг: 0 / 0
VBA: Групповой обработчик OnClick
    #37980547
SOFT FOR YOU
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
а можно какой-нибудь просто примерчик использования
...
Рейтинг: 0 / 0
VBA: Групповой обработчик OnClick
    #37980749
Фотография VladConn
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
SOFT FOR YOUа можно какой-нибудь просто примерчик использования

Это красиво не сделать. По-человечески тока в .NET.
...
Рейтинг: 0 / 0
VBA: Групповой обработчик OnClick
    #37980760
SOFT FOR YOU
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
по итогу решил обычным вызовом

для каждой кнопки создал обработчик с уникальными параметрами
всем спасибо за то, что попытались помочь.
...
Рейтинг: 0 / 0
9 сообщений из 9, страница 1 из 1
Форумы / Visual Basic [игнор отключен] [закрыт для гостей] / VBA: Групповой обработчик OnClick
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


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