Две вещи: 1) это в VBA, но должно быть легко переносимым на C # и VSTO, 2) вещь "текст изменен" немного сложнее. Я могу получить вас до "ты в поле заголовка" - остальное более тривиально. Это связано с поиском исходного состояния по сравнению с любыми изменениями. Вероятно, выполнимо, я просто не сделал этого.
Чтобы подключить изменение выбора в PPT VBA, вам понадобится один класс и один модуль. В классе положите это:
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
Назовите класс "clsPPTEvents". Затем в любой модуль вставьте следующее:
Public newPPTEvents As New clsPPTEvents
Sub StartEvents()
Set newPPTEvents.PPTEvent = Application
End Sub
Sub EndEvents()
Set newPPTEvents.PPTEvent = Nothing
Set newPPTEvents = Nothing
End Sub
Нажмите F5 на StartEvents, и это активирует ловушку. Нажмите F5 на EndEvents, чтобы отключить его.