Visual Basic, .NET, ASP, VBScript
 

   
   
     

Форум - VBA

Страница: 1 |

 

  Вопрос: VBA и PowerPoint Добавлено: 22.09.06 09:26  

Автор вопроса:  Валерий
Подскажите каким образом при открытии документа PowerPoint выполнить определенный макрос на VBA

Ответить

  Ответы Всего ответов: 1  

Номер ответа: 1
Автор ответа:
 GenyaA



Вопросов: 0
Ответов: 185
 Web-сайт: www.genyaa.nm.ru
 Профиль | | #1
Добавлено: 23.09.06 15:39
На сколько я смог в этом разобраться, выходит, что это возможно только если в момент открытия презентации PowerPoint уже открыт и в его VBA уже отработана процедура активации обработчика событий объекта Application.

Простым кликом на презентации при еще не запущенном PowerPoint выполнить макрос при открытии этой презентации не получится.

Активация обработчика событий Application происходит следующим образом:

1. Нужно создать модуль класса для обработчика событий, например EventClassModule

2. Включить в него объявление WithEvents

Public WithEvents App As Application


3. Написать модуль обработчика события в этом модуле класса, например:

Private Sub App_PresentationOpen(ByVal Pres As Presentation)
    MsgBox Pres.Name & " открыта"
End Sub


3. Далее нужно запустить следующий код из любого модуля этой презентации - он инициализирует обработичик событий в созданном модуле класса обработчика событий:

Dim X As New EventClassModule
Sub InitializeApp()
    Set X.App = Application
End Sub


(Именно в этом моменте вся загвоздка - инициализацию обработчика событий для объекта Application нужно вызывать "вручную".)

4. После этого при всяком наступлении события, описанного в модуле класса обработчика события, это событие будет инициировать соответствующу процедуру.


Вполне возможно, что запустить инициализацию обработчика событий объекта Application в PowerPoint можно извне, какой нибудь внешней программой, используя Automation. Но я в этом не разбирался и не смогу пока помочь.

Ответить

Страница: 1 |

Поиск по форуму



© Copyright 2002-2011 VBNet.RU | Пишите нам