ナレッジベース 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グラフをコピーして貼り付けるには?