Powerpoint VBA приложение SlideShowBegin

чтобы использовать событие SlideShowBegin в Powerpoint, необходимо настроить модуль класса следующим образом:

Public WithEvents App As Application

    Private Sub App_SlideShowBegin(ByVal Wn As SlideShowWindow)
        MsgBox "SlideShowBegin"
    End Sub

затем, внутри неклассового модуля, вы должны создать объект этого типа и установить приложение в Application.

Dim X As New Class1

Sub InitializeApp()
Set X.App = Application
End Sub

Теперь, единственная проблема у меня есть, если вы вручную не вызвали InitializeApp с меню макросов в Powerpoint, события не работают. Вы должны вызвать эту подлодку, прежде чем что-либо может быть вызвано в начале слайд-шоу, включая эту подзаголовок.

как я могу пойти о вызове этой суб перед запуском powerpoint? Есть ли лучший способ сделать это?

EDIT:

Я пробовал использовать Class_Initialize, но он вызывается только после его первого использования или вы делаете заявление, как Dim X as Class1; X = new Class1

1 ответов


обычно обработчики событий устанавливаются как часть надстройки, где вы инициализируете класс в подпрограмме Auto_Open, которая всегда запускается при загрузке надстройки. Если вы хотите включить обработчик событий в одну презентацию, один из способов его инициализации-включить фигуру, которая при наведении мыши или щелчке запускает макрос, который инициирует обработчик событий и переходит к следующему слайду.