ナレッジ ベース KB0073

think-cellで図形が使用されているかVBAで確認するには?

think-cellで使われる図形すべてにタグが付けられます。PowerPointの図形のほか、think-cellはスライドやスライド マスター、カスタム レイアウトで特別な図形(ActiveDocumentコンテナー)を配置できます。このActiveDocumentコンテナーは表示されず、think-cellオブジェクトに関する特別な情報が含まれています。
PowerPointオブジェクト モデルでは、各PowerPoint.Shapeオブジェクトにタグのコレクションがあり、think-cellは特別なタグ「thinkcellShapeDoNotDelete」を設定して図形を識別できるようにします。特別なタグの値は、ActiveDocumentコンテナーでは「thinkcellActiveDocDoNotDelete」に設定されます。think-cellがコントロールしている他のあらゆる図形では「t」から始まります。

例:think-cellの図形をチェックする方法

以下のVBA関数は、特別なタグを使用して特定のPowerPoint.Shapeオブジェクトを分類する方法を示しています。

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

この関数を使用して、アクティブなスライドの図形すべてを識別することができます。

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

図形をコピーするたびに各図形のタグのコレクションもコピーされる点に留意してください(例:think-cellグラフをコピーして貼り付ける場合など)。CheckShapeは、図形がコピーされ、別のプレゼンテーションに貼り付けられた場合でも、think-cellグラフの一部だった図形すべてに関するthink-cell図形を報告します。

以下も参照してください:KB0107:VBAコードでthink-cellグラフをコピーして貼り付けるには?