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

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

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

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

есть ли в VBA что-то типа FindComponent("имя")Controls("имя")
...
Рейтинг: 0 / 0
01.10.2012, 18:23
    #37979159
Диклевич Александр
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
VBA: Групповой обработчик OnClick
а еще можно использовать 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
01.10.2012, 18:57
    #37979209
ЦЦа
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
VBA: Групповой обработчик OnClick
SOFT FOR YOU,

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

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

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

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

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


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