我正在开发一个PowerPoint C#VSTO加载项。我想能够在幻灯片的标题文本发生更改时捕获文本更改事件。
如何附加自定义事件处理程序,只要更改标题文本,它就会触发?
答案 0 :(得分:3)
两件事: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
在StartEvents上按 F5 ,这将启用挂钩。按EndEvents上的F5将其禁用。