「word vba テキストボックスが何ページ目にあるか」
という検索で、このサイト・インストラクターのネタ帳へのアクセスがありました。
Word VBA(Visual Basic for Applications)で、テキストボックスが文書内の何ページ目にあるかを調べるには、どのようなコード書けばいいのかを探している方による検索です。
「word マクロ テキストボックスのあるページを取得」
という検索をなさった方も、同じことを探していたのかもしれません。
テキストボックスの存在するページ番号を取得するサンプルマクロ
以下のマクロを実行すると、アクティブ文書のテキストボックスのあるページ番号が、イミディエイトウィンドウに出力されます。
Dim shp As Shape For Each shp In ActiveDocument.Shapes
If shp.Type = msoTextBox Then
Debug.Print _
shp.Anchor.Information(wdActiveEndPageNumber)
End If
Next shp
End Sub
サンプルマクロの解説
アクティブな文書内の全Shapeに対してFor Each~Nextループを回して、
For Each shp In ActiveDocument.Shapes
もしもテキストボックスだったときに、
If shp.Type = msoTextBox Then
アンカーの存在するページ番号を、Range.Informationプロパティの引数に定数・wdActiveEndPageNumberを指定することで取得して、Debug.Printしています。
Debug.Print _
shp.Anchor.Information(wdActiveEndPageNumber)
ShapeオブジェクトのAnchorプロパティが、Rangeオブジェクトを返すところが、
ポイントでしょうか。
Home » ワードマクロ・Word VBAの使い方 » Shape・図形 » テキストボックスの存在するページ番号を取得するWordマクロ