Wie erfassen ich eine Powerpoint-VSTO Text geändert Ereignis?
-
08-07-2019 - |
Frage
Ich entwickle eine Powerpoint-C # VSTO-Add-In. Ich möchte in der Lage, einen Text geändert Ereignis zu erfassen, wenn der Titeltext eines Schlittens geändert wird.
Wie kann ich eine benutzerdefinierte Ereignishandler anfügen, die ausgelöst wird, wenn der Titeltext geändert wird?
Lösung
Zwei Dinge: 1) ist dies in VBA, soll aber auf C # und VSTO leicht tragbar sein, 2) Der „Text geändert“ Sache ist ein bisschen schwierig. Ich kann Ihnen so weit wie „Sie in einem Feld Titel sind“ - der Rest mehr trival ist. Es hat mit der Suche nach ursprünglichem Zustand im Vergleich zu Änderungen zu tun. Wahrscheinlich machbar, ich habe es einfach nicht getan.
Um eine Auswahl zu ändern in PPT VBA Haken, werden Sie eine Klasse benötigen und ein Modul. In der Klasse, setzt diese:
Public WithEvents PPTEvent As Application
Private Sub PPTEvent_WindowSelectionChange(ByVal Sel As Selection)
With Sel
If .Type = ppSelectionText Then
Dim sh As Shape: Set sh = .ShapeRange(1)
If sh.Type = msoPlaceholder Then
originalText = sh.TextFrame.Text
Dim placeHolderType As Integer
placeHolderType = sh.PlaceholderFormat.Type
If placeHolderType = ppPlaceholderTitle Then
MsgBox "this is a title placeholder"
End If
End If
End If
End With
End Sub
Name der Klasse "clsPPTEvents". Dann in jedem Modul, setzen die folgenden Möglichkeiten:
Public newPPTEvents As New clsPPTEvents
Sub StartEvents()
Set newPPTEvents.PPTEvent = Application
End Sub
Sub EndEvents()
Set newPPTEvents.PPTEvent = Nothing
Set newPPTEvents = Nothing
End Sub
Drücken Sie F5 zu den StartEvents und das wird den Haken ermöglichen. Drücken Sie F5 auf den EndEvents zu deaktivieren.