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をコピー&貼り付けするにはどうすればよいですか? もご参照ください。