Home » パワーポイントマクロ・PowerPoint VBAの使い方 » Shapesコレクション・Shapeオブジェクト » PowerPoint VBAでShapeRangeの個数を取得する

対象:PowerPoint2010, PowerPoint2013, Windows版PowerPoint2016

PowerPoint.ShapeRange.Count

「.ShapeRange 個数」
「vba shaperange 数を取得」
といった検索キーワードでのアクセスに気付きました。

Excel VBAでShapeRangeオブジェクトの数を取得するコードについて調べていたのではないかと思うのですが、Excel VBAのShapeRangeは真面目に解説すると話が長くなることもあり、まずはPowerPoint VBAについて解説しておきます。

選択図形の数を取得するサンプルマクロ

PowerPointのスライド上で図形を選択しておいてから以下のSubプロシージャを実行すると、選択されている図形を表すShapeRangeオブジェクトの数がメッセージボックスに表示されます。

Sub 選択されている図形の個数を取得する()
On Error GoTo ErrHandl

 MsgBox _
   ActiveWindow.Selection.ShapeRange.Count

Exit Sub
ErrHandl:
 MsgBox "図形を選択してから実行してください。"
End Sub

サンプルマクロで利用しているオブジェクト式について

PowerPoint VBAの場合、DocumentWindowオブジェクトのSelectionプロパティで、選択されている操作対象を表すSelectionオブジェクトを取得できます。

PowerPoint.DocumentWindow.Selection

ただし、PowerPoint VBAの場合はSelectionプロパティがグローバルメンバーではありませんから、DocumentWindowオブジェクトを取得するコードから書く必要があります。そのためアクティブなウィンドウを表すDocumentWindowオブジェクトを返す、グローバルメンバーであるActiveWindowプロパティからコードが始まっています。

取得したSelectionオブジェクトのShapeRangeプロパティを使うと、選択されている図形を表すShapeRangeオブジェクトを取得できます。

PowerPoint.Selection.ShapeRange

ShapeRangeオブジェクトは、Shapeオブジェクトと同じようなプロパティ・メソッドを持っていますが、実はコレクションですから含まれる単独のオブジェクトの数を返すCountプロパティも用意されています。

PowerPoint.ShapeRange.Count

このShapeRange.Countをメッセージボックスに表示しているのが、上記のSubプロシージャです。

PowerPoint VBAでもコレクションはCountプロパティを持つ

拙著『いちばんやさしいExcel VBAの教本』の、Lesson 53「コレクションオブジェクトについて学習しましょう」で、

コレクションオブジェクトには、含まれる単独のオブジェクトの数を取得するCountプロパティが用意されています。

と書きました。このルールは、Excel VBAだけでなくPowerPoint VBAでも同じです。

最終更新日時:2021-09-03 16:08

[スポンサードリンク]

Home » パワーポイントマクロ・PowerPoint VBAの使い方 » Shapesコレクション・Shapeオブジェクト » PowerPoint VBAでShapeRangeの個数を取得する

「Shapesコレクション・Shapeオブジェクト」の記事一覧

検索


Copyright © インストラクターのネタ帳 All Rights Reserved.

.