Base de conocimientos KB0073

¿Cómo puedo saber con VBA si think-cell utiliza una forma?

Cada forma encontrada por think-cell se marca con una etiqueta. Además de formas de PowerPoint, think-cell también puede incluir una forma especial (contenedor ActiveDocument) en diapositivas, patrones de diapositivas o diseños personalizados. Este contenedor ActiveDocument no es visible y contiene información especial sobre los objetos de think-cell.
En el modelo de objetos de PowerPoint, cada objeto PowerPoint.Shape tiene una colección de etiquetas. think-cell define una etiqueta especial thinkcellShapeDoNotDelete para ayudar a identificar las formas. El valor de esta etiqueta especial se define en thinkcellActiveDocDoNotDelete para el contenedor ActiveDocument. Para el resto de formas controladas por think-cell, comienza con t.

Ejemplo: Cómo se pueden comprobar las formas de think-cell

La siguiente función de VBA muestra cómo clasificar un determinado objeto PowerPoint.Shape mediante la etiqueta especial:

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

Puede utilizar esta función para identificar todas las formas de la diapositiva activa:

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

Tenga en cuenta que la colección de etiquetas de una forma también se copia cada vez que se copia una forma, por ejemplo, al copiar y pegar el gráfico de think-cell. CheckShape informará de la presencia de una forma de think-cell para todas las formas que han sido parte de un gráfico de think-cell, incluso si la forma se copia y se pega en otra presentación.