こんにちは。
OSはWinXP Pro、OfficeXPを使用しています。
1ページ目にあるグループ化された図形をページを
追加して貼り付けていくマクロを以前質問したので
すが、ShapeRange.Leftの代入がうまくいきません。
********************************************
Sub 図形追加()
Dim siTop As Single
Dim siLeft As Single
Selection.HomeKey unit:=wdStory
ActiveDocument.Shapes("Group 1478").Select
siTop = Selection.ShapeRange.Top
siLeft = Selection.ShapeRange.Left
Selection.Copy
Selection.EndKey unit:=wdStory
Selection.InsertBreak Type:=wdPageBreak
Selection.GoTo What:=wdGoToPage, _
Which:=wdGoToNext
Selection.Paste
Selection.ShapeRange.Top = siTop
Selection.ShapeRange.Left = siLeft
Selection.HomeKey unit:=wdLine
End Sub
********************************************
上述の値を追っていくと、
siTop=40.25、siLeft=46が入っているのですが、
下から2段目のShaperange.Leftを実行すると
そこには-785.05 という数値が入ってしまいます。
(どこからその数値がでてきたのか????)
Shaperange.Topはうまくいくのですが、ステートメント
の実行順を変えてもうまくいきません。
どなたか解決策のご教授をお願いします。
No.2ベストアンサー
- 回答日時:
前回の misatoanna です。
単体画像ですとちゃんと動くのですが、グループ化された図形ですと貼り付け位置が
変わってしまうようですね。
図形を選択しただけで取得する .Top や .Left の値は、その図形のアンカー位置
を基準にしているみたいですね。(よくわかりませんが)
今度は、図形の位置をページ左上隅からの距離にして少々書き直してみました。
こちらのテストではグループ図形も期待どおりに動いたのですが。。。。 そちらで
うまくいかなかったらごめんなさい。 ^_^;
Sub Test()
Dim siTop As Single
Dim siLeft As Single
Selection.HomeKey unit:=wdStory
ActiveDocument.Shapes("Group XX").Select
Selection.ShapeRange.RelativeHorizontalPosition = _
wdRelativeHorizontalPositionPage
Selection.ShapeRange.RelativeVerticalPosition = _
wdRelativeVerticalPositionPage
siTop = Selection.ShapeRange.Top
siLeft = Selection.ShapeRange.Left
Selection.Copy
Selection.EndKey unit:=wdStory
Selection.InsertBreak Type:=wdPageBreak
Selection.GoTo What:=wdGoToPage, Which:=wdGoToNext
Selection.Paste
Selection.ShapeRange.Top = siTop
Selection.ShapeRange.Left = siLeft
Selection.HomeKey unit:=wdLine
End Sub
この回答への補足
misatoannaさん、こんにちは。
前回に引き続きありがとうございます。
教えていただいたコードをコピーしたのですが、
解決されませんでした。ただ、大事な事を言い忘れ
ていることに気がつきました。用紙サイズはA4で
余白の設定を上80mm下15mm左15mm右30mmに設定して
います。図形はその余白を超えて指定してあります。
それが「悪さ」しているのかもしれません。
更なる解決策があるようでしたらご教授願います。
No.3
- 回答日時:
こんにちわ。
misatoannaです。("こんにちは"が正しいようですが)
> 教えていただいたコードをコピーしたのですが解決されませんでした。
実行した結果と期待値とは、具体的にはどのように違うのでしょうか。
> 図形はその余白を超えて指定してあります。それが悪さしているのかも。
図形の位置は設定されている用紙の左上端からの距離を取得していますので、
マイナス位置でも影響ないはずなのですが。
こちらでは、文章編集エリア内、余白、余白外(図の一部が用紙の外)にかか
わらずに正常に動作しています。
――バージョンが違う(2002 / 2000)から、ということは関係ないと思うの
ですが。
この回答への補足
misatoannaさん、こんにちは。
時間が返答が遅くなってすみませんでした。
****************************************
具体的にはShapeRange.Leftを実行すると、
図形がページの外へ(?)いってしまいます(
どこかに消えてしまいます。「戻る」ボタン
を押すと画面上に戻ってきます。ページの外へ
いってしまっているようですが・・・。)
****************************************
これだけで何かのヒントになるでしょうか?
ご面倒かけますがよろしくお願いいたします。
No.1
- 回答日時:
Dimで、TopやLeftの数値は「 As Long」だったようにおもう。
Sub 図形追加()
Dim siTop As Long
Dim siLeft As Long
Selection.HomeKey unit:=wdStory
siName = ActiveDocument.Shapes.AddShape(msoShapeRectangle, 50, 50, 200, 100).Name
MsgBox siName
ActiveDocument.Shapes(siName).Select
siTop = Selection.ShapeRange.Top
siLeft = Selection.ShapeRange.Left
MsgBox siTop & " " & siLeft
Selection.Copy
Selection.EndKey unit:=wdStory
Selection.InsertBreak Type:=wdPageBreak
Selection.GoTo What:=wdGoToPage, _
Which:=wdGoToNext
Selection.Paste
Selection.ShapeRange.Top = siTop
Selection.ShapeRange.Left = siLeft
Selection.HomeKey unit:=wdLine
End Sub
を実行しましたがマイナスの数字が出てしまいます。
しかし最終ページに同じ図形が、コピー元と、同じ位置現れるところ
から、結果は正しくありませんか。
マイナスの意味がわかりませんね。
ーー
カーソルの当初位置(点滅している位置)を、余白を変えて動かすと
上記MsgBox表示の数字がプラスになったりするので、そこが基準かなとも思いましたが(そこより上や左はマイナス)、自信ありません。
答えになってなくてすみません。
imogasiさん、こんにちは。
なるほど、余白に何かありそうですね!
余白を変えたくらいでプラス値がマイナス
になるのも困ったものです。。。
何か解決策があるといいのですが・・・。
どうもありがとうございました。
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
似たような質問が見つかりました
- Visual Basic(VBA) 【VBA】写真の貼り付けコードがうまく機能しません。 5 2022/09/01 18:43
- Visual Basic(VBA) データのある範囲を選択するVBAについて 2 2022/09/03 00:20
- Visual Basic(VBA) マクロで最終行を取得してコピーしたい 3 2022/04/06 19:07
- Excel(エクセル) VBA オリジナル関数で選択セルの合計を作成したい 3 2023/03/19 19:45
- Visual Basic(VBA) VBA シート上にドロップダウンリストを作り、予め指定値をセットしたいのですが 1 2023/03/25 15:15
- Excel(エクセル) エクセルで同じ数字同士を自動で線で結ぶVBAを教えてください 6 2022/04/26 23:13
- PowerPoint(パワーポイント) ExcelのVBAコードについて教えてください。 3 2022/05/25 14:32
- Visual Basic(VBA) 複数セルに〇印をつけるマクロ 4 2022/09/07 05:33
- Visual Basic(VBA) EXCEL VBAにて動的にCheckBOXを複数作成し、同BOXにイベントを追加したい 1 2023/03/16 07:05
- Excel(エクセル) 日付で矢印マクロ 4 2023/07/25 16:47
関連するカテゴリからQ&Aを探す
おすすめ情報
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
PowerPointで台形を描く方法
-
グーグルスプレッドシートの図...
-
線を組み合わせた図形の塗りつ...
-
Illustratorでくくり括弧記号を...
-
AutoCADで渦巻きを描く方法
-
pdf上に描画した図形が印刷され...
-
Windows7 Word2010、図形し...
-
Excel のバージョンによって、...
-
図形でしずく型を作りたい
-
ワードかエクセルの図形を使っ...
-
パワーポイントに貼り付けた画...
-
エクセル ユーザーフォームに...
-
Excel 図形へのハイパーリンク
-
visioで図形を自由に回転したい
-
Illustratorで白い部分のみを透...
-
JWWで登録した図形の縮尺を変え...
-
エクセルで自作の図形をメニュ...
-
教えて下さい。過去のエクセル...
-
エクセルで図形を連動させたい
-
ワードの基本図形で 角丸四角と...
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
PowerPointで台形を描く方法
-
グーグルスプレッドシートの図...
-
線を組み合わせた図形の塗りつ...
-
pdf上に描画した図形が印刷され...
-
Excel のバージョンによって、...
-
AutoCADで渦巻きを描く方法
-
Illustratorでくくり括弧記号を...
-
Illustratorで白い部分のみを透...
-
Excel2003図-扇形を書く方法は...
-
エクセルで図形を連動させたい
-
Canvaの図形は、縦横比をキープ...
-
Excel2010で、今の、Ex...
-
Excel 図形へのハイパーリンク
-
エクセル ユーザーフォームに...
-
図形でしずく型を作りたい
-
WORDで図に網掛けする方法は?
-
ExcelのVBAコードについて教え...
-
エクセルで自作の図形をメニュ...
-
パワーポイントに貼り付けた画...
-
ワードかエクセルの図形を使っ...
おすすめ情報