ワード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で質問しましょう!
似たような質問が見つかりました
- Visual Basic(VBA) 【VBA】写真の縦横比を変えずに貼り付ける 5 2023/06/13 11:42
- Visual Basic(VBA) 【VBA】写真の貼り付けコードがうまく機能しません。 5 2022/09/01 18:43
- Visual Basic(VBA) VBA Shapesの座標からセル位置取得について教えてください 1 2022/08/26 10:57
- Word(ワード) ワードの背面や前面 5 2023/01/28 11:50
- JavaScript オブジェクト配列の各メンバを任意の式で評価して、その評価値が最大のオブジェクトを返す関数はありますか 2 2023/05/20 15:02
- Android Androidスマホの遠隔起動について、教えてください。 2 2022/08/25 17:28
- 物理学 角運動量の式変形が分かりません。 4 2022/08/03 21:04
- Google Maps オフラインでもGPS使えるとネットに書いてありましたが、 圏外の状態で、Google Mapで位置情 3 2022/04/20 17:52
- C言語・C++・C# ディスプレイの解像度とマウスの位置について 2 2023/05/21 19:01
- Excel(エクセル) Excelのマクロについて教えてください。 4 2022/05/31 14:07
このQ&Aを見た人はこんなQ&Aも見ています
-
プロが教えるわが家の防犯対策術!
ホームセキュリティのプロが、家庭の防犯対策を真剣に考える 2組のご夫婦へ実際の防犯対策術をご紹介!どうすれば家と家族を守れるのかを教えます!
-
選択範囲の座標値の抽出
Word(ワード)
-
ワードの図形をコピー&ペイストのマクロ
Word(ワード)
-
Word 図形の位置
Visual Basic(VBA)
-
-
4
【ワード】マクロで画像を選択する
Word(ワード)
-
5
Word VBA 表内の図を一括中央揃えにするマク
Word(ワード)
-
6
エクセルマクロでワードの一ページ目をコピーして新たに二ページを追加して、一ページ目の内容を貼り付ける
Visual Basic(VBA)
-
7
vba クリップボードクリアについて教えてください
その他(プログラミング・Web制作)
-
8
VBAでエクセルシートを更新(リフレッシュ)する方法を教えて下さい。
Excel(エクセル)
-
9
Excel VBAで、ユーザーフォームをモードレス表示している間、処理を止めるには?
Visual Basic(VBA)
-
10
エクセルVBAでOptionButtonのオンオフ取得
Excel(エクセル)
-
11
ワードマクロで画像を選択する方法
Word(ワード)
-
12
ワードのマクロで段落番号(文字も含む)取得ってできますか
Word(ワード)
-
13
【Word2007】Shapeの中のInlineShapeの情報を取得したい
Word(ワード)
-
14
メッセージボックスを前面に表示させるには?
Visual Basic(VBA)
-
15
VBAでテキスト出力時のスペースについて
Visual Basic(VBA)
-
16
Application.ScreenUpdating = Falseが効きません
Visual Basic(VBA)
-
17
ワードからエクセルへ貼り付けるマクロ
Excel(エクセル)
-
18
【VBA】エクセルの指定セルの値を、Wordの指定場所に貼る方法
Excel(エクセル)
-
19
word オートシェイプ内も一括変換
Visual Basic(VBA)
-
20
Wordで図形などの全てのオブジェクトの位置を一括で固定する方法はありますか?
Word(ワード)
関連するカテゴリからQ&Aを探す
このQ&Aを見た人がよく見るQ&A
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
グラフの交点の求め方(Excel)
-
3次元空間上の2つの座標から...
-
マインクラフト(pc版)で座標...
-
始点、終点の二つの座標と半径...
-
エクセルである点からの距離で...
-
以下のプログラムは重心を求め...
-
閉図形の座標の配列が右回りか...
-
ダイアログ内コントロールの位...
-
OpenGLの線の太さ
-
運動のプログラムをおしえてく...
-
エクセルで回転する座標の出し方
-
オートシェイプ円弧の中心点、...
-
Fortranで直交座標から極座標変...
-
Excel VBAでマウス移動&ダブル...
-
緊急 ベーシックで国旗の作り方...
-
Excel VBA で自在に図形を変化...
-
GLで座標を変えて回転させたい
-
ワード上Shapeの位置情報を統一...
-
四角形の当たり判定についての...
-
C言語で制作するピラミッドアー...
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
グラフの交点の求め方(Excel)
-
マインクラフト(pc版)で座標...
-
エクセルである点からの距離で...
-
エクセルで回転する座標の出し方
-
3次元空間上の2つの座標から...
-
始点、終点の二つの座標と半径...
-
c言語でキーボードから2点の座...
-
閉図形の座標の配列が右回りか...
-
以下のプログラムは重心を求め...
-
交差する2線分の交点座標の求め方
-
y=x^2の座標をプロットするプロ...
-
ダイアログ内コントロールの位...
-
シーケンサー(PLC?)で制...
-
ガウシアンフィルタのCプログラム
-
多角形の内部かどうか判定する方法
-
直線上にある点の座標の求め方
-
エクセルシート上のマウスポイ...
-
OpenCvSharp4による画像判定解...
-
C言語 配列で座標
-
ピクチャボックスの座標取得
おすすめ情報