Domanda

Sto sviluppando un componente aggiuntivo VSTO C # per PowerPoint. Voglio essere in grado di catturare un evento modificato di testo ogni volta che viene modificato il testo del titolo di una diapositiva.

Come posso allegare un gestore eventi personalizzato che verrà attivato ogni volta che il testo del titolo viene modificato?

È stato utile?

Soluzione

Due cose: 1) questo è in VBA, ma dovrebbe essere facilmente trasportabile su C # e VSTO, 2) Il testo "cambiato" " la cosa è un po 'complicata. Posso arrivare fino a quando ti trovi in ??una casella del titolo " - il resto è più trival. Ha a che fare con la ricerca dello stato originale rispetto a qualsiasi modifica. Probabilmente fattibile, non l'ho fatto.

Per agganciare una modifica di selezione in PPT VBA, avrai bisogno di una classe e un modulo. Nella classe, metti questo:

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

Assegna un nome alla classe " clsPPTEvents " ;. Quindi, in qualsiasi modulo, inserisci quanto segue:

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

Premi F5 su StartEvents e questo abiliterà l'hook. Premi F5 su EndEvents per disabilitarlo.

Autorizzato sotto: CC-BY-SA insieme a attribuzione
Non affiliato a StackOverflow
scroll top