Question

Je développe un complément PowerPoint C # VSTO. Je veux pouvoir capturer un événement de texte modifié chaque fois que le texte du titre d'une diapositive est modifié.

Comment puis-je attacher un gestionnaire d'événements personnalisé qui se déclenchera chaque fois que le texte du titre sera modifié?

Était-ce utile?

La solution

Deux choses: 1) cela est en VBA, mais devrait être facilement portable en C # et VSTO, 2) Le "texte modifié" la chose est un peu délicate. Je peux vous obtenir aussi loin que "vous êtes dans une zone de titre". - le reste est plus trival. Cela a à voir avec la recherche de l'état d'origine par rapport à tout changement. Probablement faisable, je ne l'ai tout simplement pas fait.

Pour accrocher un changement de sélection dans VBA PPT, vous aurez besoin d’une classe et d’un module. Dans la classe, mettez ceci:

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

Nommez la classe "clsPPTEvents". Ensuite, dans n'importe quel module, mettez ce qui suit:

Public newPPTEvents As New clsPPTEvents
Sub StartEvents()
    Set newPPTEvents.PPTEvent = Application
End Sub
Sub EndEvents()
    Set newPPTEvents.PPTEvent = Nothing
    Set newPPTEvents = Nothing
End Sub

Appuyez sur F5 sur les événements de démarrage (StartEvents) pour activer le raccordement. Appuyez sur F5 sur les EndEvents pour le désactiver.

Licencié sous: CC-BY-SA avec attribution
Non affilié à StackOverflow
scroll top