Home » ワードマクロ・Word VBAの使い方 » Shape・図形 » 図形・オートシェイプ・テキストボックスの位置を取得するWordマクロ

図形・オートシェイプ・テキストボックスの位置を取得するWordマクロ

対象:Word2007, Word2010, Word2013

「word マクロ テキストボックス 座標」
という検索で、このサイト・インストラクターのネタ帳へのアクセスがありました。

テキストボックスの座標・位置を取得するWord マクロ・VBA(Visual Basic for Applications)のコードを探している方による検索です。

[スポンサードリンク]

図形の位置を取得するサンプルマクロ

テキストボックスというキーワードが使われていますが、テキストボックスもVBA側から見たときには図形(以前のオートシェイプ)の一種です。

ここでは選択されている図形の位置を取得するサンプルマクロをご紹介しておきます。

Sub 選択されている図形の位置を取得する()

 Dim msg As String

 With Selection

  If .Type = wdSelectionShape Then
   With .ShapeRange
    .RelativeVerticalPosition _
     = wdRelativeVerticalPositionPage
    .RelativeHorizontalPosition _
     = wdRelativeHorizontalPositionPage
    msg = "用紙上端から "
    msg = msg & Round(PointsToCentimeters(.Top), 2) & "cm"
    msg = msg & vbCrLf & "用紙右端から "
    msg = msg & Round(PointsToCentimeters(.Left), 2) & "cm"
   End With
  Else
   msg = "図形を選択して実行してください。"
  End If

 End With

 MsgBox msg

End Sub

図形を選択しておいてから上記のマクロを実行すると、下図のようなメッセージボックスが表示されます。

図形・オートシェイプ・テキストボックスの位置を取得するWordマクロ

サンプルマクロの解説

まず、選択されているのが図形だったときだけ処理を行うようにしています。
 With Selection
  If .Type = wdSelectionShape Then

図形の垂直方向の位置を取得する基準をページの上端に、
    .RelativeVerticalPosition _
     = wdRelativeVerticalPositionPage

図形の水平方向の位置を取得する基準をページの左端に、
    .RelativeHorizontalPosition _
     = wdRelativeHorizontalPositionPage

それぞれ設定してから、図形の位置を取得します。

ページの上端からの位置をTopプロパティで取得して、単位をPointToCentimetersメソッドでポイントからセンチメートルに変換した値をRound関数で丸め、
    msg = msg & Round(PointsToCentimeters(.Top), 2) & "cm"

ページの左端からの位置をLeftプロパティで取得して、単位をPointToCentimetersメソッドでポイントからセンチメートルに変換した値をRound関数で丸め、
    msg = msg & Round(PointsToCentimeters(.Left), 2) & "cm"

最後にメッセージボックスを表示しています。
 MsgBox msg

[スポンサードリンク]

Home » ワードマクロ・Word VBAの使い方 » Shape・図形 » 図形・オートシェイプ・テキストボックスの位置を取得するWordマクロ

「Shape・図形」の記事一覧

検索


Copyright © インストラクターのネタ帳 All Rights Reserved.

.