Pregunta

Estoy desarrollando un complemento PowerPoint C # VSTO. Quiero poder capturar un evento de cambio de texto cada vez que se cambia el texto del Título de una diapositiva.

¿Cómo puedo adjuntar un controlador de eventos personalizado que se activará cada vez que se cambie el texto del Título?

¿Fue útil?

Solución

Dos cosas: 1) esto está en VBA, pero debería ser fácilmente transportable a C # y VSTO, 2) El " texto cambió " La cosa es un poco complicada. Puedo llevarte tan lejos como '' estás en un cuadro de Título '' - El resto es más trival. Tiene que ver con encontrar el estado original versus cualquier cambio. Probablemente factible, simplemente no lo he hecho.

Para conectar un cambio de selección en PPT VBA, necesitará una clase y un módulo. En la clase, pon esto:

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

Nombre la clase " clsPPTEvents " ;. Luego, en cualquier módulo, coloque lo siguiente:

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

Presione F5 en StartEvents y eso habilitará el enlace. Presione F5 en EndEvents para deshabilitarlo.

Licenciado bajo: CC-BY-SA con atribución
No afiliado a StackOverflow
scroll top