検索キーワード
「.ShapeRange 個数」
「vba shaperange 数を取得」
をキッカケにして、ShapeRangeの個数を取得するPowerPoint VBAのSubプロシージャを公開しています。
Excel VBAの場合をご紹介します。
選択図形の数を取得するサンプルマクロ
実は、PowerPoint VBAと、まったく同じSubプロシージャでOKです。
On Error GoTo ErrHandl
MsgBox _
ActiveWindow.Selection.ShapeRange.Count
ErrHandl:
MsgBox "図形を選択してから実行してください。"
End Sub
ActiveWindowプロパティを明示することで
オブジェクトブラウザーで確認すればわかるとおり、
Excel VBAの場合Selectionプロパティはグローバルメンバーですから、
ActiveWindow.Selection.ShapeRange.Count
の部分は「ActiveWindow.」を省略して
Selection.ShapeRange.Count
と書くこともできます。
拙著『いちばんやさしいExcel VBAの教本』の、執筆段階でのレビューで大変お世話になったthomさんのブログ記事「VBA 角丸四角形の角の丸めサイズを統一するマクロ(Excel・PowePoint・Word対応)」で公開されているSubプロシージャAdjustRoundedRectangleでも、ActiveWindowプロパティを明示することで、まったく同じコードがExcelでもPowerPointでもWordでも動くようになっています。
ActiveWindowプロパティが返すオブジェクトの名前は違う
細かい話ですが、ActiveWindowプロパティが返すオブジェクトが、Excel VBAの場合はWindowオブジェクトである点は、一応、違います。
ただ、PowerPointのDocumentWindowオブジェクトと、ExcelのWindowオブジェクトは、いずれもアプリケーションウィンドウを表す、結局は同じようなオブジェクトです。
ExcelのWindowオブジェクトのコレクションはWindowsで、
どうしてもOSとしてのWindowsを想起させてしまうと感じるので、PowerPointのDocumentWindows・DocumentWindowという名前のほうが、適切だと私は思います。
最終更新日時:2021-09-03 16:05
- Newer:日曜日を赤くする条件付き書式-WEEKDAY関数
- Older:WEEKDAY関数の使い方を理解するなら
Home » エクセルマクロ・Excel VBAの使い方 » DrawingObjects » Excel VBAでShapeRangeの個数を取得する