можно ли программно создать event для объекта

Программирование на Visual Basic for Applications
grim
Начинающий
Начинающий
 
Сообщения: 13
Зарегистрирован: 25.07.2005 (Пн) 9:33

можно ли программно создать event для объекта

Сообщение grim » 07.05.2009 (Чт) 16:44

Подскажите можно ли программно создать event для объекта в честности хочу чтобы по кнопке в Excel книге создавался лист для которого бы опредялись некоторые event'ы. Как назначить эвенты создаваемому листу?

alibek
Большой Человек
Большой Человек
 
Сообщения: 14205
Зарегистрирован: 19.04.2002 (Пт) 11:40
Откуда: Russia

Re: можно ли программно создать event для объекта

Сообщение alibek » 07.05.2009 (Чт) 18:44

Назначить обработчики программно — можно.
Добавить события — нельзя.
Lasciate ogni speranza, voi ch'entrate.

grim
Начинающий
Начинающий
 
Сообщения: 13
Зарегистрирован: 25.07.2005 (Пн) 9:33

Re: можно ли программно создать event для объекта

Сообщение grim » 07.05.2009 (Чт) 22:27

я не очень понял.
допустим я добавляю лист

Dim MySheet As Worksheet
Set MySheet = ActiveWorkbook.Sheets.Add

Как програмно назначить ему обработчик стандартного события например Worksheet_Change ?

Alec
Бывалый
Бывалый
 
Сообщения: 275
Зарегистрирован: 31.08.2008 (Вс) 0:15
Откуда: Ростов-на-Дону

Re: можно ли программно создать event для объекта

Сообщение Alec » 07.05.2009 (Чт) 22:44

Создаешь модуль класса (или используем модуль ThisWorkbook)
В нем:
Код: Выделить всё
Public WithEvents MySheet As Worksheet

'нужный обработчик
Private Sub MySheet_Change(ByVal Target As Range)

End Sub

Теперь можно в нужном тебе месте вызывать
Код: Выделить всё
Set MySheet = ActiveWorkbook.Sheets.Add
Иногда лучше вовремя остановиться...
И начать заново!

alibek
Большой Человек
Большой Человек
 
Сообщения: 14205
Зарегистрирован: 19.04.2002 (Пт) 11:40
Откуда: Russia

Re: можно ли программно создать event для объекта

Сообщение alibek » 08.05.2009 (Пт) 10:23

grim писал(а):Как програмно назначить ему обработчик стандартного события например Worksheet_Change ?

Добавить код через VBIDE.CodeModule.CreateEventProc+VBIDE.CodeModule.InsertLines.
Lasciate ogni speranza, voi ch'entrate.


Вернуться в VBA

Кто сейчас на конференции

Сейчас этот форум просматривают: нет зарегистрированных пользователей и гости: 28

    TopList