ナレッジベース KB0073

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

think-cellで使われる図形すべてにタグが付けられます。PowerPointの図形のほか、think-cellはスライドやスライド マスター、カスタム レイアウトで特別な図形(ActiveDocumentコンテナー)を配置できます。このActiveDocumentコンテナーは表示されず、think-cellオブジェクトに関する特別な情報が含まれています。
PowerPointオブジェクトモデルでは、各PowerPoint.ShapeオブジェクトにTagsコレクションがあり、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 shapeを報告します。

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

共有する