Knowledge-Base-Artikel (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 Tag-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 beim Kopieren einer Form (z. B. durch Kopieren und Einfügen des think-cell Diagramms) auch die Tag-Sammlung der Form mitkopiert wird. CheckShape meldet alle Formen, die Bestandteil eines think-cell-Diagramms waren, als think-cell shape. Dies gilt auch dann, wenn die Form in eine andere Präsentation kopiert wurde.