KB0073: So kann man mit VBA herausfinden, ob eine Form von thinkcell verwendet wird.
- Startseite
- Ressourcen
- Knowledge Base
- KB0073
thinkcell markiert alle Formen, die es auffindet, mit einem Tag. Zusätzlich zu den PowerPoint-Formen fügt thinkcell 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 thinkcell Objekten. Im Objektmodell von PowerPoint verfügt jedes PowerPoint.Shape-Objekt über eine Tags-Sammlung. thinkcell 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 thinkcell gesteuerten Formen beginnt der Wert mit t.
Beispiel: thinkcell 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 "thinkcell ActiveDocument"
Else
MsgBox "thinkcell 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 thinkcell-Diagramms, auch die Tagsammlung der Form mitkopiert wird. Die Funktion CheckShape meldet entsprechend thinkcell shape bei allen Formen, die Teil eines mit thinkcell-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 thinkcell Diagramme in meinen VBA-Code kopieren und einfügen?