「powerpoint vba 動作を設定した図形の情報」
という検索で、このサイト・インストラクターのネタ帳へのアクセスが、ありました。
2007以降のPowerPointでは、[挿入]タブ-[リンク]グループ-[動作]ボタンなどから、
[オブジェクトの動作設定]ダイアログを表示して、
図形をクリックしたとき・マウスポインタが図形上に移動したときに、何らかの動作が行われるように設定することができます。
ですが、どの図形にどのような動作が設定されているのかは、[オブジェクトの動作設定]ダイアログを表示させないとわからないため、動作設定された図形に関する情報を、VBA(Visual Basic for Applications)で取得するというのは、確かにニーズがありそうです。
動作の設定されている図形の情報をDebug.Printするサンプルマクロ
以下のようなマクロで、アクティブなプレゼンテーションファイルの、動作が設定されている図形の情報をイミディエイトウィンドウに出力できます。
Dim sld As Slide
Dim shp As Shape
Dim act As ActionSetting For Each sld In ActivePresentation.Slides
For Each shp In sld.Shapes
For Each act In shp.ActionSettings
If act.Action <> ppActionNone Then
Debug.Print _
sld.SlideNumber & vbTab & _
shp.Name & vbTab & _
act.Action
End If
Next act
Next shp
Next sld
End Sub
上記のマクロを実行すると、動作設定された図形の、スライド番号(Slide.SlideNumber)・図形の名前(Shape.Name)・動作の番号(ActionSetting.Action)がイミディエイトウィンドウに出力されます。
アクティブプレゼンテーションファイルの全スライドに対するFor Each~Nextループの中で、
For Each sld In ActivePresentation.Slides
全図形に対するFor Each~Nextループを回して、
For Each shp In sld.Shapes
各図形のActionSettingオブジェクトを調べて、
For Each act In shp.ActionSettings
何らかの動作設定が行われていたときに、
If act.Action <> ppActionNone Then
出力を行っています。
Debug.Print _
sld.SlideNumber & vbTab & _
shp.Name & vbTab & _
act.Action
動作設定されている図形を選択するサンプルマクロ
たくさんの図形が存在している場合は、動作設定されている図形をマクロで選択させるほうが便利な気もします。
Dim shp As Shape
Dim act As ActionSetting For Each shp In ActiveWindow.Selection.SlideRange.Shapes
For Each act In shp.ActionSettings
If act.Action <> ppActionNone Then
shp.Select
MsgBox shp.Name & vbCrLf & act.Action
End If
Next act
Next shp
End Sub
上記のマクロを実行すると、アクティブなスライドで動作の設定されている図形が選択されて、図形の名前と設定されている動作の番号がメッセージボックスに表示されます。
Home » パワーポイントマクロ・PowerPoint VBAの使い方 » Shapesコレクション・Shapeオブジェクト » 動作設定されている図形の情報を取得するPowerPointマクロ