KB0073: Come si usa VBA per scoprire se una forma è usata da thinkcell?
- Home
- Risorse
- Knowledge base
- KB0073
Ogni forma incontrata da thinkcell viene contrassegnata con un tag. Oltre alle forme di PowerPoint, thinkcell potrebbe anche inserire una forma speciale (contenitore ActiveDocument) nelle diapositive, negli schemi diapositiva o nei layout personalizzati. Questo contenitore ActiveDocument 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 il tag speciale thinkcellShapeDoNotDelete per facilitare l'identificazione delle forme. Il valore del tag speciale è impostato su thinkcellActiveDocDoNotDelete per il contenitore ActiveDocument; per tutte le altre forme controllate da thinkcell inizia con t.
Esempio: come verificare la presenza di forme thinkcell?
La seguente funzione VBA dimostra come classificare 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 "thinkcell ActiveDocument"
Else
MsgBox "thinkcell shape"
End If
End If
End Sub
È possibile usare questa funzione per identificare tutte le forme nella diapositiva attiva:
Sub Test()
Dim oShape As PowerPoint.Shape
For Each oShape In ActiveWindow.View.Slide.Shapes
Call CheckShape(oShape)
Next oShape
End Sub
Si noti 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 hanno fatto parte di un grafico thinkcell, anche se una forma è stata copiata e incollata in un'altra presentazione.
Potrebbe essere utile leggere anche KB0107: Come posso copiare e incollare i grafici thinkcell nel mio codice VBA?