كيف يمكنني التقاط النص VSTO باور بوينت تغيير حدث؟
-
08-07-2019 - |
سؤال
وأنا تطوير باور بوينت C # VSTO الإضافية. أريد أن أكون قادرة على التقاط الحدث النص تغير كلما تم تغيير النص عنوان شريحة.
وكيف يمكنني إرفاق معالج الحدث المخصص الذي سوف النار كلما يتم تغيير نص العنوان؟
المحلول
وشيئين: 1) هذا هو في VBA، ولكن ينبغي أن تكون محمولة بسهولة إلى C # و VSTO، 2) "غيرت النص" الشيء هو صعبة بعض الشيء. كنت أستطيع الحصول على قدر "أنت في مربع العنوان" - والباقي هو أكثر trival. عليها أن تفعل مع العثور على حالته الأصلية مقابل أية تغييرات. قابلة للتنفيذ على الأرجح، أنا فقط لم تكن قد فعلت ذلك.
لربط تغيير التحديد في 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 لتعطيله.