KB0073:thinkcellで図形が使用されているかVBAで確認するには?

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グラフをコピーして貼り付ける場合など)。CheckShapeは、図形がコピーされ別のプレゼンテーションに貼り付けられた場合でも、thinkcellグラフの一部だったすべての図形のthinkcell shapeを報告します。

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