「.ShapeRange 個数」
「vba shaperange 数を取得」
といった検索キーワードでのアクセスに気付きました。
Excel VBAでShapeRangeオブジェクトの数を取得するコードについて調べていたのではないかと思うのですが、Excel VBAのShapeRangeは真面目に解説すると話が長くなることもあり、まずはPowerPoint VBAについて解説しておきます。
選択図形の数を取得するサンプルマクロ
PowerPointのスライド上で図形を選択しておいてから以下のSubプロシージャを実行すると、選択されている図形を表すShapeRangeオブジェクトの数がメッセージボックスに表示されます。
On Error GoTo ErrHandl
MsgBox _
ActiveWindow.Selection.ShapeRange.Count
ErrHandl:
MsgBox "図形を選択してから実行してください。"
End Sub
サンプルマクロで利用しているオブジェクト式について
PowerPoint VBAの場合、DocumentWindowオブジェクトのSelectionプロパティで、選択されている操作対象を表すSelectionオブジェクトを取得できます。
ただし、PowerPoint VBAの場合はSelectionプロパティがグローバルメンバーではありませんから、DocumentWindowオブジェクトを取得するコードから書く必要があります。そのためアクティブなウィンドウを表すDocumentWindowオブジェクトを返す、グローバルメンバーであるActiveWindowプロパティからコードが始まっています。
取得したSelectionオブジェクトのShapeRangeプロパティを使うと、選択されている図形を表すShapeRangeオブジェクトを取得できます。
ShapeRangeオブジェクトは、Shapeオブジェクトと同じようなプロパティ・メソッドを持っていますが、実はコレクションですから含まれる単独のオブジェクトの数を返すCountプロパティも用意されています。
このShapeRange.Countをメッセージボックスに表示しているのが、上記のSubプロシージャです。
PowerPoint VBAでもコレクションはCountプロパティを持つ
拙著『いちばんやさしいExcel VBAの教本』の、Lesson 53「コレクションオブジェクトについて学習しましょう」で、
コレクションオブジェクトには、含まれる単独のオブジェクトの数を取得するCountプロパティが用意されています。
と書きました。このルールは、Excel VBAだけでなくPowerPoint VBAでも同じです。
最終更新日時:2021-09-03 16:08
- Newer:aからzまでFor~Nextループ-Chr関数・Asc関数
- Older:VBAでオブジェクトを印刷する設定の変更
Home » パワーポイントマクロ・PowerPoint VBAの使い方 » Shapesコレクション・Shapeオブジェクト » PowerPoint VBAでShapeRangeの個数を取得する