Base de conhecimento KB0073
Como posso descobrir com a VBA se uma forma é usada pelo think-cell?
Cada forma encontrada pelo think-cell é assinalada com um marca. Além das formas do PowerPoint, o think-cell também pode posicionar uma forma especial (contêiner do ActiveDocument) em slides, slides mestres ou layouts personalizados. Esse contêiner do ActiveDocument não está visível e contém informações especiais sobre os objetos do think-cell.
No modelo de objeto do PowerPoint, cada objeto
PowerPoint.Shape
tem uma coleção de Tags
. O think-cell define uma marca especial thinkcellShapeDoNotDelete
para ajudar a identificar as formas. O valor da marca especial é definido como thinkcellActiveDocDoNotDelete
para o contêiner do ActiveDocument; para todas as outras formas controladas do think-cell, começa com t
.Exemplo: Como verificar formas do think-cell?
A seguinte função do VBA demonstra como classificar um determinado objeto PowerPoint.Shape
usando a marca 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
Você pode usar essa função para identificar todas as formas no slide ativo:
Sub Test()
Dim oShape As PowerPoint.Shape
For Each oShape In ActiveWindow.View.Slide.Shapes
Call CheckShape(oShape)
Next oShape
End Sub
Observe que a coleção de marcas de cada forma também é copiada sempre que você copiar uma forma, p. ex., copiando e colando o gráfico* do think-cell. CheckShape
reportará think-cell shape
para todas as formas que pertencem a um gráfico do think-cell, mesmo se a forma tiver sido copiada e colada em outra apresentação.
Você também pode se interessar em ler KB0107: Como posso copiar-colar gráficos do think-cell no meu código VBA?