KB0073: Wie kann ich mit VBA herausfinden, ob eine Form von thinkcell verwendet wird?

  1. Startseite
  2. Ressourcen
  3. Knowledge Base
  4. 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?