Base de connaissances 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 Tags. think-cell définit la balise spéciale thinkcellShapeDoNotDelete afin d’identifier ces formes. 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 la façon de 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 collection de balises de chaque forme est également copiée chaque fois que vous copiez une forme, par exemple en copiant et en collant le graphique think-cell. CheckShape signalera think-cell shape pour toutes les formes qui ont fait partie d’un graphique think-cell, même si une forme a été copiée et collée dans une autre présentation.

Vous pourriez également être intéressé par l’article KB0107 : Comment copier-coller des graphiques think-cell dans mon code VBA ?

Partager