KB0073: Come si fa a sapere se una forma è utilizzata da thinkcell con la funzione VBA?
- Home
- Risorse
- Knowledge base
- KB0073
Ogni forma incontrata da thinkcell viene contrassegnata con un tag. In aggiunta alle forme di PowerPoint, thinkcell 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 thinkcell. Nel modello a oggetti di PowerPoint ogni oggetto PowerPoint.Shape ha una raccolta Tags. thinkcell imposta uno speciale tag thinkcellShapeDoNotDelete come aiuto per identificare le forme. Il valore di questo tag speciale è impostato su thinkcellActiveDocDoNotDelete per l’ActiveDocument container, per tutte le altre forme controllate di thinkcell inizia con t.
Esempio: Come si controllano le forme di thinkcell?
La seguente funzione VBA dimostra in che modo viene classificato un determinato oggetto PowerPoint.Shape usando il tag speciale:
ub 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 "thinkcell ActiveDocument"
Else
MsgBox "thinkcell 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 thinkcell. CheckShape segnalerà thinkcell shape per tutte le forme che fanno parte di un grafico thinkcell 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 thinkcell nel codice VBA?