Knowledge base KB0073

Comment savoir avec VBA si une forme est utilisée par think-cell ?

Toutes les formes détectées par think-cell sont marquées par une balise. Outre les formes PowerPoint, think-cell peut également placer une forme spéciale (conteneur ActiveDocument) sur les diapositives, les masques des diapositives ou les dispositions personnalisées. Ce conteneur ActiveDocument n'est pas visible et contient des informations spéciales à propos des objets think-cell.
Dans le modèle d'objet PowerPoint, chaque objet PowerPoint.Shape présente une série de balises. think-cell définit une balise thinkcellShapeDoNotDelete spéciale afin d'identifier ces formes plus facilement. La valeur de cette balise spéciale est définie sur thinkcellActiveDocDoNotDelete pour le conteneur ActiveDocument ; pour toutes les autres formes contrôlées par think-cell, elle commence par t.

Exemple : Comment vérifier la présence de formes think-cell ?

La fonction VBA suivante illustre comment classifier un objet PowerPoint.Shape donné à l'aide de la balise spéciale :

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

Vous pouvez utiliser cette fonction pour identifier toutes les formes sur la diapositive active :

Sub Test()
    Dim oShape As PowerPoint.Shape
    For Each oShape In ActiveWindow.View.Slide.Shapes
        Call CheckShape(oShape)
    Next oShape
End Sub

Veuillez noter que la série de balises de chaque forme est également copiée dès lors que vous copiez une forme, par exemple via un copier-coller du graphique think-cell. CheckShape indique la mention think-cell shape (forme think-cell) pour toutes les formes qui ont fait partie d'un graphique think-cell, et ce même si elles ont été copiées et collées dans une autre présentation.