
ワードVBAを書いています。
お客さんのワード文書にShapeが貼り付いていて、その位置情報を、ページの境界線からの距離(ポイント)で取得したいと思っています。
shape.RelativeHorizontalPositionは、wdRelativeHorizontalPositionColumn となっていました。
これはどういう意味なんでしょうか?
色々調べたのですが、なかなかいい情報が見つかりません。
shape.Left/Topを、何の座標と足せば、見た目の座標になるのでしょうか?
詳しい方がおられたら教えてください。

No.2ベストアンサー
- 回答日時:
#1 です。
失礼しました。
Top および Left はアンカーからの位置っぽいですね。
なのでアンカーがページ端からどのぐらいの位置にあるのかを加えなければなりません。
Dim leftPos As Single
Dim topPos As Single
leftPos = myShape.Anchor.Information(wdHorizontalPositionRelativeToPage) + myShape.Left
topPos = myShape.Anchor.Information(wdVerticalPositionRelativeToPage) + myShape.Top
これで出せると思います。
Google 様に word shape absolute position vba で聞いてみました。
ありがとうございます!
教えていただいたキーワードで見つかったMSのサポートページに詳しく(?)でていました。
そのコードをそのまま実行すると、ものによっては元の位置から少しずれてしまうのですが…
ほかに方法は無さそうですね。
これで行こうと思います。
ありがとうございました。

No.1
- 回答日時:
Top と Left じゃないですか?
Dim myShape As Shape
Set myShape = ActiveDocument.Shapes.AddShape(msoShapeRectangle, 0, 0, 30, 30)
myShape.Top = 100
myShape.Left = 100
Top、Left、AddShape をヘルプで見てみてください。
この回答への補足
回答ありがとうございます。
画面上で見るとページの真ん中へんにあるのに、Topが1pt未満だったりLeftがマイナス値だったりするので悩んでいます。
ヘルプを見ると、
> 図形の位置は、図形の境界ボックスの左上隅から図形のアンカーまでを測定します。
とあるので、アンカー位置を
shp.Anchor.Information(wdHorizontalPositionRelativeToPage)
で取って、Leftを足したら良いかと思いましたが、やはり見た目の位置とは明らかに違うようです。
shape.RelativeHorizontalPosition を変更すると、取得できるTopやLeftの値が変わるので、関係あるかと思ったのですが…
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
このQ&Aを見た人はこんなQ&Aも見ています
-
【ワード】マクロで画像を選択する
Word(ワード)
-
ワードの図形をコピー&ペイストのマクロ
Word(ワード)
-
Word 図形の位置
Visual Basic(VBA)
-
-
4
ワードマクロで画像を選択する方法
Word(ワード)
-
5
選択範囲の座標値の抽出
Word(ワード)
-
6
【Word2007】Shapeの中のInlineShapeの情報を取得したい
Word(ワード)
-
7
エクセルマクロでワードの一ページ目をコピーして新たに二ページを追加して、一ページ目の内容を貼り付ける
Visual Basic(VBA)
-
8
ワードのマクロで段落番号(文字も含む)取得ってできますか
Word(ワード)
-
9
メッセージボックスを前面に表示させるには?
Visual Basic(VBA)
-
10
Word のVBAについて初心者なのですが、質問があります。
Word(ワード)
-
11
【VBA】エクセルの指定セルの値を、Wordの指定場所に貼る方法
Excel(エクセル)
-
12
Wordで図形などの全てのオブジェクトの位置を一括で固定する方法はありますか?
Word(ワード)
-
13
WORD VBA オートシェイプにマクロを登録したい
Word(ワード)
-
14
[ EXCEL VBA ] 図形を読み込む順番を制御するには?
Visual Basic(VBA)
-
15
VBAでエクセルシートを更新(リフレッシュ)する方法を教えて下さい。
Excel(エクセル)
-
16
エクセルのマクロでSelection.Shaperangeを使用した時のエラーについて
Visual Basic(VBA)
-
17
オートシェイプの黄色いハンドルのマクロ操作
Word(ワード)
-
18
Word VBA 表内の図を一括中央揃えにするマク
Word(ワード)
-
19
ExcelVBAで既に開いてるwordを閉じる
Excel(エクセル)
-
20
Wordマクロ、選択した複数行を1行ずつ読み込みたい
Word(ワード)
関連するカテゴリからQ&Aを探す
今、見られている記事はコレ!
-
弁護士が解説!あなたの声を行政に届ける「パブリックコメント」制度のすべて
社会に対する意見や不満、疑問。それを発信する場所は、SNSやブログ、そしてニュースサイトのコメント欄など多岐にわたる。教えて!gooでも「ヤフコメ民について」というタイトルのトピックがあり、この投稿の通り、...
-
弁護士が語る「合法と違法を分けるオンラインカジノのシンプルな線引き」
「お金を賭けたら違法です」ーーこう答えたのは富士見坂法律事務所の井上義之弁護士。オンラインカジノが違法となるかどうかの基準は、このように非常にシンプルである。しかし2025年にはいって、違法賭博事件が相次...
-
釣りと密漁の違いは?知らなかったでは済まされない?事前にできることは?
知らなかったでは済まされないのが法律の世界であるが、全てを知ってから何かをするには少々手間がかかるし、最悪始めることすらできずに終わってしまうこともあり得る。教えてgooでも「釣りと密漁の境目はどこです...
-
カスハラとクレームの違いは?カスハラの法的責任は?企業がとるべき対応は?
東京都が、客からの迷惑行為などを称した「カスタマーハラスメント」、いわゆる「カスハラ」の防止を目的とした条例を、全国で初めて成立させた。条例に罰則はなく、2025年4月1日から施行される。 この動きは自治体...
-
なぜ批判コメントをするの?その心理と向き合い方をカウンセラーにきいた!
今や生活に必要不可欠となったインターネット。手軽に情報を得られるだけでなく、ネットを介したコミュニケーションも一般的となった。それと同時に顕在化しているのが、他者に対する辛らつな意見だ。ネットニュース...
おすすめ情報
このQ&Aを見た人がよく見るQ&A
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
グラフの交点の求め方(Excel)
-
マインクラフト(pc版)で座標...
-
重力の計算
-
測地系の座標変換の方法を教え...
-
3次元空間上の2つの座標から...
-
Excel関数で指定範囲内に有るか...
-
Delphiで後ろにあるTPanelや重...
-
C言語で制作するピラミッドアー...
-
c言語でキーボードから2点の座...
-
OpenGLの「見える範囲」は何故...
-
c#で直線が図形内にあるか判定
-
C言語において、0の座標をキャ...
-
住所から経緯経度を出したい
-
C言語 配列で座標
-
ダイアログ内コントロールの位...
-
始点、終点の二つの座標と半径...
-
球面状に円を描くプログラム
-
エクセルで作った新しいウイン...
-
コントロールの書式設定で、“コ...
-
「アイテムは収集されました」...
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
グラフの交点の求め方(Excel)
-
マインクラフト(pc版)で座標...
-
c言語でキーボードから2点の座...
-
3次元空間上の2つの座標から...
-
ワード上Shapeの位置情報を統一...
-
シーケンサー(PLC?)で制...
-
多角形の内部かどうか判定する方法
-
Excel VBA で自在に図形を変化...
-
ガウシアンフィルタのCプログラム
-
エクセルで回転する座標の出し方
-
エクセルである点からの距離で...
-
選択範囲の座標値の抽出
-
ダイアログ内コントロールの位...
-
y=x^2の座標をプロットするプロ...
-
有限要素法について教えてください
-
有限要素法(FEM)について教え...
-
C言語 配列で座標
-
PanelとCanvasの違いについて
-
タッチパッドのタッチ座標取得
-
アクセスのセルの数え方。
おすすめ情報