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?

War es hilfreich?

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.

Lizenziert unter: CC-BY-SA mit Zuschreibung
Nicht verbunden mit StackOverflow
scroll top