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?

Compartilhar