Конференція vbstreets - перегляд теми - виклик процедури, як параметра

Народ, у мене є форма, наприклад, з 3 кнопками. Мені треба програмно імітувати їх натискання, але я не хочу це робити індивідуально для кожної кнопки, викликаючи Код: Виділити все call CommandButton1_Click і т. Д. А передаючи ім'я контрола як параметр в якусь функцію. Питання, як запустити сама подія кліка на кнопці. Я розумію, що це повинно бути щось типу callback виклику, але як його організувати в конфе не знайшов. Якщо це не можливо з VBA, то, може, є шлях через API-виклик? Підкажіть.

Зовсім забув про Код: Виділити все Application.Run
Колись про це читав, але поки ніколи не користувався. Так що проблема вирішена. Хоча непорозуміння залишилося: чи є який-небудь інший спосіб імітувати подія об'єкта (в моєму випадку - кнопки), знаючи його ім'я? Щось типу Raise, але в хорошому сенсі

Run-то Run, але несподівано зіткнувся з проблемою виклику Private процедури, що лежить в коді форми, з процедури, розташованої в іншому модулі: Код: Виділити все Application.Run # 40; "UserForm1.CommandButton1_click" # 41;
на жаль, не спрацьовує

Зробити в цьому модулі паблік-процедуру, що викликає еплікейшн-ран, а з інших модулів викликати цю процедуру

Програмування - богообрана дисципліна! Якщо бог і є, то всесвіт він скомпілював, не інакше.

На жаль, у CommandButton1 (тим більше у UserForm1) немає методу CommandButton1_Click (є тільки Move, SetFocus, ZOrder і нексколько прихованих), тому, що так: Код: Виділити все CallByName UserForm1.CommandButton1, "Click", VbMethod. що так: Код: Виділити все CallByName UserForm1.CommandButton1, "CommandButton1_Click", VbMethod. що так: Код: Виділити все CallByName UserForm1, "CommandButton1_Click", VbMethod - все одно - повідомлення про помилку: "Object does not support this property or method (Error 438)"

а якщо зайти в код форми і поміняти
Код: Виділити все Private Sub CommandButton1_Click # 40; # 41;
на
Код: Виділити все Public Sub CommandButton1_Click # 40; # 41;
то зробивши так
Код: Виділити все Call UserForm1.CommandButton1_Click все буде в шоколаді

та й так спрацює
Код: Виділити все CallByName UserForm1, "CommandButton1_Click", VbMethod

I Have Nine Lives You Have One Only
THINK!