動作検証バージョン:64bit Windows 10 Pro + 32bit Word(バージョン2108 ビルド14326.20238 Microsoft Store)
Excel VBAの場合「.Shape.Range.Count」で実行時エラーになること、PowerPoint VBAなら「.Shapes.Range.Count」でも図形の個数を取得できることを記事にしました。
こうなると、Word VBAではどうなのかが気になります。
[スポンサードリンク]
図形の個数を取得する基本
まず、基本的なコードを確認しましょう。
Sub 図形の個数を取得する()
MsgBox ActiveDocument.Shapes.Count
End Sub
MsgBox ActiveDocument.Shapes.Count
End Sub
上記のSubプロシージャを実行すると、アクティブ文書に含まれる図形の個数がメッセージボックスに表示されます。
Shapesコレクションに用意されているCountプロパティを使えば
要素であるShapeオブジェクトの個数を取得できます。
Shapes.Range.Countではコンパイルエラーに
つづいて、
ActiveDocument.Shapes.Count
の部分を、
ActiveDocument.Shapes.Range.Count
に変更してから実行すると今度は
「コンパイルエラー: 引数は省略できません。」
となります。
Excel VBAの場合は実行時エラーでしたが、Word VBAではより適切にコンパイルエラーが発生してくれて、メッセージも理解しやすいものが表示されます。
WordのShapes.Rangeの引数Indexは必須
オブジェクトブラウザーでShapes.Rangeメソッドを確認すると、下図のとおり詳細ペイン1行目の「(Index)」表示から、
引数Indexが必須であることを読み取れます。
[スポンサードリンク]
Home » ワードマクロ・Word VBAの使い方 » Shape・図形 » Wordの場合Shapes.Range.Countはコンパイルエラーに