Home » パワーポイントマクロ・PowerPoint VBAの使い方 » Shapesコレクション・Shapeオブジェクト » PowerPointならShapes.Range.Countでも図形の個数を取得できる

PowerPointならShapes.Range.Countでも図形の個数を取得できる

動作検証バージョン:64bit Windows 10 Pro + 32bit PowerPoint(バージョン2107 ビルド14228.20250 Microsoft Store)

PowerPoint.Shapes.Range

Excel VBAで、コード「.Shapes.Range.Count」で図形の個数が取得できない件を記事にしました。

Excel VBAの兄弟ともいえるPowerPoint VBAの場合、「.Shapes.Range.Count」はエラーにならず、図形の個数を取得できます。

[スポンサードリンク]

Shapes.Range.Countを確認する

PowerPoint VBAで以下のSubプロシージャを実行すると、アクティブプレゼンテーション先頭スライドに存在する図形の個数が、メッセージボックスに表示されます。

Sub あえてShapeRangeを使って図形の個数を取得する()
 MsgBox _
   ActivePresentation.Slides(1).Shapes.Range.Count
End Sub

ここではExcel VBAとの比較のためにあえて「.Slides(1).Shapes.Range.Count」としていますけれど、図形の個数を取得するだけならばもちろん「.Slides(1).Shapes.Count」をおすすめします。

PowerPointのShapes.Rangeの引数は必須ではない

PowerPointの場合、Shapesコレクションに用意されているRangeメソッドの引数が必須ではないためです。

オブジェクトブラウザーの詳細ペインで、Shapes.Rangeメソッドの引数を確認すると、「([Index])」と表示されています。

PowerPoint.Shapes.Range

引数名のIndexが、[ ] で括られていることから、省略できることが読み取れます。

このため「.Shapes.Range.Count」でエラーになることなく、図形の個数を取得できたわけです。

ExcelのShapes.Rangeの引数は必須

あらためて、Excel VBAのShape.Rangeを確認しておきましょう。

ExcelのShapes.Rangeプロパティの引数は、オブジェクトブラウザー詳細ペインの1行目に「(Index)」と表示されているとおり、

Excel.Shapes.Range

必須です。

そのためExcel VBAの場合、「.Shapes.Range.Count」がエラーになってしまったわけです。

最終更新日時:2021-09-26 12:10

[スポンサードリンク]

Home » パワーポイントマクロ・PowerPoint VBAの使い方 » Shapesコレクション・Shapeオブジェクト » PowerPointならShapes.Range.Countでも図形の個数を取得できる

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

検索


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

.