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?

Teilen