Knowledge base KB0073

Come si fa a sapere se una forma è utilizzata da think-cell con la funzione VBA?

Ogni forma incontrata da think-cell viene contrassegnata con un tag. In aggiunta alle forme di PowerPoint, think-cell potrebbe anche posizionare una forma speciale (ActiveDocument container) su diapositive, schemi diapositive o layout personalizzato. ActiveDocument container non è visibile e contiene informazioni speciali sugli oggetti think-cell.
Nel modello a oggetti di PowerPoint ogni oggetto PowerPoint.Shape ha una raccolta Tags. think-cell imposta uno speciale tag thinkcellShapeDoNotDelete come aiuto per identificare le forme. Il valore di questo tag speciale è impostato su thinkcellActiveDocDoNotDelete per il container ActiveDocument, per tutte le altre forme controllate di think-cell inizia con t.

Esempio: Come si controllano le forme di think-cell?

La seguente funzione VBA dimostra in che modo viene classificato un determinato oggetto PowerPoint.Shape usando il tag speciale:

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

È possibile usare questa funzione per identificare tutte le forme sulla diapositiva attiva:

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

Notare che la raccolta di tag di ogni forma viene copiata anche ogni volta che si copia una forma, ad esempio copiando e incollando il grafico think-cell. CheckShape segnalerà think-cell shape per tutte le forme che fanno parte di un grafico think-cell anche se una forma è stata copiata e incollata in un'altra presentazione.

Si consiglia inoltre di consultare KB0107: Come si copiano e incollano i grafici think-cell nel codice VBA?

Condividi