| Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате |
| Форум программистов > Программирование, связанное с MS Office > VBA отловить открытие документа в ворде |
| Автор: Bladerender 27.5.2014, 19:00 |
| Короче задача такая. С VBA первый раз сталкиваюсь. Сам на C# пишу. К Normal подключен набор функций и прочей фигни. Как оно в VBA у вас называется - не знаю. Библиотека короче кастомная. В этой библиотеке у нас есть класс с ивентами MyClassFromLibrary. Задача такова: При открытии любого документа или создании нового документа - создать обьект этого MyClassFromLibrary и подписатся обработчиками на ивенты этого MyClassFromLibrary . Что я пытаюсь сделать. В этом Alt+F11 в Normal создал ClassModule под названием MyCustomClass. В нем написал Public WithEvents MyObj As MyClassFromLibrary Потом Alt+F11 в Normal создал Module1. В этом Module1 теперь нужно как-то подписаться на событие открытия/создания документа в Word и в обработчике создать обьект этого MyObj и подписаться на ивенты этого MyObj Этот код это типа уже в обработчике открытия/создания документа { Dim myCustomClass As MyCustomClass Set myCustomClass = New MyCustomClass Set myCustomClass.MyObj = new MyClassFromLibrary } потом как-то нужно подписаться на ивенты этого myCustomClass.MyObj. я так понял что подписчики определяются VBA по названию обработчика типа Т.е. если у меня обьект с ивентами где-то в myCustomClass.MyObj и название ивента у меня MyEvent1, то обработчик будет выглядеть так Private Sub myCustomClass_MyObj_MyEvent1(параметры) MsgBox "Сработал обработчик моего класса" End Sub Хз. Вроде елементарщина с точки зрения того, что VBA должен делать это все командой "сделать все зашибись", т.к. типа заточен под такие дела. Но я что-то с помощью гугла собрать рабочий семпл этого дела так и не смог. |