Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате
Форум программистов > VB6 > Как в VBA корректно прицепить макрос к событию


Автор: Hmmmm 6.4.2006, 21:51
Привет честной компании!

Пишу на Delphi и вот попросили сделать на VBA макрос, который бы изменял структуру листа Excel (убирал некоторые строки в зависимости от наполнения содержимым таблицы) перед наступлением события Print. Думал, что сделаю это одним махом, как в Delphi, но никак lol

Написал макрос в Module1

sub Reform()
... далее не суть важно, например,
Cells(1,1)=1
...

Нашел к чему зацепится
(правда не пойму где здесь правильно записать)
Написал в секции макроса Module1

Private Sub List1_WorkbookBeforePrint(List1, Cancel)
Reform
End Sub

Не прет.

Написал в List1 (Code)

Не прет

Написал в Книге1 (Code)

Не прет

Подскажите, как правильно вызвать макрос перед наступлением печати Листа1 (List1)

Спасибо.

Автор: ~FoX~ 7.4.2006, 08:00
Ну вопервых лист в ехселе не имеет события BeforPrint, такое событие есть только у книги.
Цитата(Hmmmm @ 6.4.2006, 22:51 Найти цитируемый пост)
(правда не пойму где здесь правильно записать)
Написал в секции макроса Module1

Во вторых, событие происходи в книге, вот в книге[code=vb] оно и должно лежать

Код

'Код модуля
Public Sub asd()
  MsgBox ("asd")
End Sub


Код

' Код проекта книги
Private Sub Workbook_BeforePrint(Cancel As Boolean)
  asd
End Sub

Все ок.....
Кстати, что за странное объявление?
Цитата
Private Sub List1_WorkbookBeforePrint(List1, Cancel)

Добавлено @ 08:05
Т.е.
В инспекторе объектов кликаем два раза на "Эта книга", в появившемся окне кода в левом верхнем ComboBoxe выбираем WorkBook, в правом верхнем событие BeforePrint,в появившуюся процедуру зафигачиваем макрос smile
Добавлено @ 08:06
З.Ы. Кстати ты форумом ошибся, форум по программированию на для оффиса ниже smile

Автор: Hmmmm 7.4.2006, 18:58
Спасибо. Извините, что не в топ, не доглядел

Powered by Invision Power Board (http://www.invisionboard.com)
© Invision Power Services (http://www.invisionpower.com)