このサイト『インストラクターのネタ帳』のアクセスログを眺めていて、
「wordvba ページ内のshpe数」
という検索キーワードに気が付きました。
Word VBAで、いずれかのページ内に存在するShapeの数を取得するには、どのようなコードを書けばいいのかを探していた方による検索です。
「wordvba ページ内のshpe数」
だけでは、どのページかがハッキリしませんので、この記事ではアクティブなページ内に存在するShapeの数を取得するコードをご紹介しておきます。
アクティブページ内のShape数を取得するサンプル
以下のSubプロシージャを実行すると、アクティブなページに存在するShapeの数がメッセージボックスに表示されます。
MsgBox _
ActiveDocument.Bookmarks("\Page").Range.ShapeRange.Count
End Sub
サンプルマクロで行っている処理
既にご紹介しているとおり、「ActiveDocument.Bookmarks("\Page").Range」で、アクティブなページ全体の文字列範囲を表すRangeオブジェクトを取得できます。
文字列範囲を表すRangeオブジェクトに用意されているShapeRangeプロパティで、アクティブページ内に存在する図形を表すShapeRangeオブジェクトを取得し、
ShapeRangeオブジェクトが持つCountプロパティで、個数を取得しているのが「ActiveDocument.Bookmarks("\Page").Range.ShapeRange.Count」です。
ShapeRangeはShapesとShapeの特徴を併せ持つ
PowerPoint VBAで、ShapeRangeオブジェクトがShapesコレクションとShapeオブジェクト両方の特徴を併せ持ったオブジェクトであることをお伝えしました。Word VBAのShapeRangeの場合も同様で、ShapeRange.Countプロパティで個数を取得できます。
- Newer:セルを表すPowerPoint.CellとExcel.Rangeの違いを意識しましょう
- Older:ActiveSheet.Shapes(Application.Caller).TopLeftCellの戻り値は?
Home » ワードマクロ・Word VBAの使い方 » Shape・図形 » Word VBAでアクティブページ内のShape数を取得する