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 Tags. El software 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 al copiar la forma, por ejemplo, copiando y pegando el gráfico de think-cell. CheckShape advierte de la presencia de think-cell shape respecto de todas las formas que han integrado un gráfico de think-cell, incluso si una forma se ha copiado y pegado en otra presentación.

Quizás le interese también el artículo KB0107: ¿Cómo puedo copiar y pegar gráficos de think-cell en mi código de VBA?

Compartir