13.12.2006, 12:34
общий
это ответ
Здравствуйте, Rewer8!
Если количество кнопок ограничено(допустим максимум 100 кнопок), то можно вручную(или каким скриптом) написать:
Sub BtnClk0()
Call BtnOnClick(0)
End Sub
Sub BtnClk1()
Call BtnOnClick(1)
End Sub
...
...
Sub BtnClk100()
Call BtnOnClick(100)
End Sub
и присваивать эти обработчики кнопкам при их создании в зависимости от индекса.
В Access я так писал прямо в модуль проекта из VBA во время выполнения, в Excel пока RunTime не получалось, только вручную.
Но может Вам отказаться от кнопок? И эмулировать их с помощью гиперссылок?
Создаете в нужной ячейке Hyperlink например на саму эту ячейку, с помощью шрифта, границ и заливки делаете ячейку похожей на кнопку,
и тогда в обработчике Worksheet_FollowHyperlink мы будем иметь непосредственно саму ссылку на которую нажали.
Есть недостаток, что при переходе по ссылке сбивается Selection, и если он Вам нужен то придется в Worksheet_SelectionChange сохранять последние Selection.
Я так делал до 300 чекбоксов на листе, уже несколько лет никто не жалуется.
Если что, пишите.
Успехов.