「vba パワーポイント 最新の図形」
という検索キーワードに気が付きました。
「最新の図形」と表現されているのが何なのか、いくつかの可能性が考えられますが、最後に挿入された図形を取得したいということならば、以下のSubプロシージャが参考になる、かも、しれません。
最後に挿入されたShapeを取得する
標準モードで以下のSubプロシージャを実行すると、基本的には、最後に挿入された図形が選択されます。
With ActiveWindow.Selection.SlideRange.Shapes
Dim cnt As Long
cnt = .Count
Dim shp As Shape
Set shp = .Item(cnt)
shp.Select
End Sub
最後に挿入された図形は最大のインデックス番号で取得できる
Shapesコレクションに用意されているItemメソッドを使うと、個々の図形を表すShapeオブジェクトを取得できます。
このShapes.Itemメソッドの引数に指定するインデックス番号は、最背面の図形が1で、手前の図形ほど1ずつ増えた整数になっています。
つまり、スライド内で最大のインデックス番号をShapes.Itemメソッドの引数に指定すると、最前面の図形(即ち最後に挿入された図形)を取得できます。
実際のコードでは、まずアクティブスライドの図形の数を変数cntに代入しておいて、
With ActiveWindow.Selection.SlideRange.Shapes
Dim cnt As Long
cnt = .Count
その数をShape.Itemメソッドの引数に指定しています。
Dim shp As Shape
Set shp = .Item(cnt)
もちろん、最前面への移動が行われた後では、上記のコードで、最後に挿入された図形を取得することはできません。
最終更新日時:2019-05-30 04:20
Home » パワーポイントマクロ・PowerPoint VBAの使い方 » Shapesコレクション・Shapeオブジェクト » PowerPoint VBAで最後に挿入された図形を取得する