Knowledge Base KB0073
So kann man mit VBA herausfinden, ob eine Form von think-cell verwendet wird.
think-cell markiert alle Formen, die es auffindet, mit einem Tag. Zusätzlich zu den PowerPoint-Formen fügt think-cell auf Folien, Folienmastern und benutzerdefinierten Layouts gegebenenfalls auch eine spezielle Form (ActiveDocument-Container) ein. Dieser ActiveDocument-Container ist nicht sichtbar und enthält besondere Angaben zu den jeweiligen think-cell Objekten.
Im Objektmodell von PowerPoint verfügt jedes
PowerPoint.Shape
-Objekt über eine Tags
-Sammlung. think-cell verwendet das spezielle Tag thinkcellShapeDoNotDelete
, um Formen zu identifizieren. Für den ActiveDocument-Container erhält dieses spezielle Tag den Wert thinkcellActiveDocDoNotDelete
, für alle anderen durch think-cell gesteuerten Formen beginnt der Wert mit t
.Beispiel: think-cell Formen überprüfen
Die folgende VBA-Funktion zeigt, wie ein bestimmtes PowerPoint.Shape
-Objekt mithilfe des speziellen Tags klassifiziert werden kann:
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 "think-cell ActiveDocument"
Else
MsgBox "think-cell shape"
End If
End If
End Sub
Mithilfe dieser Funktion lassen sich 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 bei jedem Kopieren der Form, z. B. beim Kopieren und Einfügen des think-cell-Diagramms, auch die Tagsammlung der Form mitkopiert wird. Die Funktion CheckShape
meldet entsprechend think-cell shape
bei allen Formen, die Teil eines mit think-cell-Chart erstellten Diagramms waren, auch wenn die Form in eine andere Präsentation kopiert wurde.
Eventuell haben Sie auch Interesse an KB0107: Wie kann ich think-cell Diagramme in meinen VBA-Code kopieren und einfügen?