KB0073: VBA を使用して、図形が thinkcell によって使用されているかどうかを確認するにはどうすればよいですか?

thinkcell が検出したすべての図形にはタグが付けられます。PowerPoint の図形に加えて、thinkcell はスライド、スライド マスター、またはカスタム レイアウト上に特別な図形(ActiveDocument コンテナー)を配置する場合もあります。この ActiveDocument コンテナーは表示されず、thinkcell オブジェクトに関する特別な情報を含んでいます。PowerPoint オブジェクト モデルでは、各 PowerPoint.Shape オブジェクトに Tags コレクションがあります。thinkcell は、図形の識別に役立つ特別なタグ thinkcellShapeDoNotDelete を設定します。特別なタグの値は、ActiveDocument コンテナーの場合は thinkcellActiveDocDoNotDelete に設定され、その他すべての thinkcell が制御する図形では t で始まります。

例: thinkcell 図形を確認する方法

次の 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 "thinkcell ActiveDocument"
        Else
            MsgBox "thinkcell 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

各図形のタグコレクションは、図形をコピーするたびに(例:thinkcell chartをコピーして貼り付ける場合など)一緒にコピーされる点にご注意ください。 CheckShape は、thinkcell chartの一部であったすべての図形について、たとえその図形が別のプレゼンテーションにコピー&貼り付けされていても、thinkcell shape と報告します。

KB0107: VBAコードでthinkcell chartsをコピー&貼り付けするにはどうすればよいですか? もご参照ください。