Я заставил его работать после долгих исследований, @ 0m3R дал мне правильный ответ.
Как-то я где-то нашел, что мне нужно объединить модуль класса с обычным модулем.
Вот код для модуля класса:
Private Sub PPTApp_PresentationBeforeSave(ByVal Pres As Presentation, Cancel As Boolean)
Dim sld As Slide
Dim shp As Shape
Dim TextValue As String
Dim intResponse As Integer
Set Pres = ActivePresentation
TextValue = "You're about to save this PowerPoint." & Chr(10) & "This Powerpoint is programmed to break all links" & _
" meaning that all of the content will not be updated automatically anymore." & Chr(10) & Chr(10) & _
"Do you wish to break all links?"
If Pres.Name <> "A3.potm" Then
intResponse = MsgBox(TextValue, Buttons:=vbYesNo)
If intResponse = vbYes Then
For Each sld In Pres.Slides
For Each shp In sld.Shapes
On Error Resume Next
shp.LinkFormat.BreakLink
On Error GoTo 0
Next shp
Next sld
Else
MsgBox "You didn't break all links - the presentation may be overwritten in the future..."
End If
End If
End Sub
Вот код для обычного модуля
Option Explicit
Dim cPPTObject As New cEventClass
Sub InitializeApp()
Set cPPTObject.PPTApp = Application
End Sub
Я решил создать «командную кнопку» в PowerPoint, чтобы пользователь запускал код перед просмотром презентации. Тогда всякий раз, когда они сохранят эту презентацию, им нужно будет выбрать, хотят ли они удалить ссылки:)
Спасибо за вашу помощь:)