KB0073: Wie kann ich mit VBA herausfinden, ob eine Form von thinkcell verwendet wird?
- Startseite
- Ressourcen
- Knowledge Base
- KB0073
Jede Form, die von thinkcell erfasst wird, wird mit einem Tag markiert. Zusätzlich zu PowerPoint-Formen kann thinkcell auch eine spezielle Form (ActiveDocument-Container) auf Folien, Folienmastern oder benutzerdefinierten Layouts platzieren. Dieser ActiveDocument-Container ist nicht sichtbar und enthält spezielle Informationen über thinkcell-Objekte. Im PowerPoint-Objektmodell verfügt jedes PowerPoint.Shape-Objekt über eine Tags-Sammlung. thinkcell setzt das spezielle Tag thinkcellShapeDoNotDelete, um die Identifizierung von Formen zu erleichtern. Der Wert des speziellen Tags wird für den ActiveDocument-Container auf thinkcellActiveDocDoNotDelete gesetzt; bei allen anderen von thinkcell gesteuerten Formen beginnt er mit t.
Beispiel: Wie prüfen Sie auf thinkcell-Formen?
Die folgende VBA-Funktion zeigt, wie Sie ein bestimmtes PowerPoint.Shape-Objekt anhand des speziellen Tags klassifizieren:
Sub CheckShape(oShape As PowerPoint.Shape)
Dim str As String
str = oShape.Tags.Item(Name:="thinkcellShapeDoNotDelete")
If (str = "" Or Left$(str, 1) <> "t") Then
MsgBox "PowerPoint shape"
Else
If str = "thinkcellActiveDocDoNotDelete" Then
MsgBox "thinkcell ActiveDocument"
Else
MsgBox "thinkcell shape"
End If
End If
End Sub
Mit dieser Funktion können Sie alle Formen auf der aktiven Folie identifizieren:
Sub Test()
Dim oShape As PowerPoint.Shape
For Each oShape In ActiveWindow.View.Slide.Shapes
Call CheckShape(oShape)
Next oShape
End Sub
Bitte beachten Sie, dass auch die Tag-Sammlung jeder Form kopiert wird, wenn Sie eine Form kopieren, z. B. durch Kopieren und Einfügen des thinkcell-Diagramms. CheckShape meldet thinkcell shape für alle Formen, die Teil eines thinkcell-Diagramms waren, selbst wenn eine Form kopiert und in eine andere Präsentation eingefügt wurde.
Möglicherweise interessiert Sie auch KB0107: Wie kann ich thinkcell-Diagramme in meinem VBA-Code kopieren und einfügen?