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?