Excel VBAで、コード「.Shapes.Range.Count」で図形の個数が取得できない件を記事にしました。
Excel VBAの兄弟ともいえるPowerPoint VBAの場合、「.Shapes.Range.Count」はエラーにならず、図形の個数を取得できます。
Shapes.Range.Countを確認する
PowerPoint VBAで以下のSubプロシージャを実行すると、アクティブプレゼンテーション先頭スライドに存在する図形の個数が、メッセージボックスに表示されます。
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])」と表示されています。
引数名のIndexが、[ ] で括られていることから、省略できることが読み取れます。
このため「.Shapes.Range.Count」でエラーになることなく、図形の個数を取得できたわけです。
ExcelのShapes.Rangeの引数は必須
あらためて、Excel VBAのShape.Rangeを確認しておきましょう。
ExcelのShapes.Rangeプロパティの引数は、オブジェクトブラウザー詳細ペインの1行目に「(Index)」と表示されているとおり、
必須です。
そのためExcel VBAの場合、「.Shapes.Range.Count」がエラーになってしまったわけです。
最終更新日時:2021-09-26 12:10
Home » パワーポイントマクロ・PowerPoint VBAの使い方 » Shapesコレクション・Shapeオブジェクト » PowerPointならShapes.Range.Countでも図形の個数を取得できる