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?