この人頭いいなと思ったエピソード

こんにちは。
WinXP-Pro、Word2002を使用しています。
一ページ目に配置してある図形をコピーし、
ページを追加しそこにその図形を貼り付け
るマクロを登録しました。記録した操作は
以下のとおりです。
*****************************************
Ctrl+Home→図の選択→Ctrl+End→Ctrl+Enter
→Paste
******************************************
手動でこの操作をやった場合はうまくいくの
ですがマクロで実行すると、図を追加したページ
でなく追加前の最終ページにペーストしてしまい
ます(Ctrl+Enterが効いていない??)。
これを改善する方策のご教授をお願いいたします。

A 回答 (2件)

> 図形を新しいページにコピーした場合、コピー元のページと配置が異なってしまうので


> 同じ位置に配置するためペースト後の図形を選択したい。
ペーストした時点でその図形が選択された状態になっていますので、元の図形を選択して
コピーする時点で予めその位置を取得しておき、貼り付け後の図形にその情報を与えれば
自動的に位置揃えできます。
<コピー時>
 T = Selection.ShapeRange.Top
 L = Selection.ShapeRange.Left
 Selection.Copy
<貼り付け後>
 Selection.Paste
 Selection.ShapeRange.Top = T
 Selection.ShapeRange.Left = L

ついでですが、文書内の名前のわからない図形は、次のようにすれば選択できます。
 ActiveDocument.Shapes(N).Select
N は任意の数字ですが、基本的には図形の「順序」でより背面にあるものから順に 1、2、
3、‥‥、となります。
複数の図形を同じ位置に貼り付けると順に前面に貼り付けられますね。ですので、順序を
変更しない限り、文書上に残っている図形の中では最初に貼り付けられたものが 1、とい
うことになります。
反対に、最後に挿入された(描かれた)図形を選択する場合は、
N = ActiveDocument.Shapes.Count
ActiveDocument.Shapes(N).Select
となります。

Selection.ShapeRange.Name = "Tekitou"
のようにして、選択した図形に任意の名前をつけてしまうこともできます。
    • good
    • 0
この回答へのお礼

misatoannaさん、こんにちは。
迅速かつ詳細なご回答ありがとうございました。
教えていただいたコードでバッチリ解決いたし
ました!!どうもありがとうございました。

お礼日時:2006/06/23 10:22

自動記録されたモジュールの最後にある


Selection.Paste
をコメントアウトしてマクロを実行する結果では、カーソルは確かに
次ページで点滅しているのですが、ここで貼り付けると、どうして前
ページに貼り付けられてしまうのでしょうね。
私にもわかりませんが、とりあえず
Selection.Paste
の行の前に
Selection.GoTo What:=wdGoToPage, Which:=wdGoToNext
という1行を加えてみてください。

この回答への補足

misatoannaさん、こんにちは。
教えられたステートメントを記述したら
うまくいきました!!!ありがとうございました。
ところで、図形を新しいページにコピーした場合、
コピー元のページと配置が異なってしまうので同
じ位置に配置するためペースト後の図形を選択し
たいのですが・・・。ペースト後の図形は
ActiveDocument.Shapes("Group xxxx")
で表現されているのですが、 xxxx の部分がその
都度変わるので自動記録したマクロではうまくいき
ません。
引き続き解決策のご教授をいただきたいのでよろし
くお願いいたします。

補足日時:2006/06/23 08:19
    • good
    • 0

お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!

このQ&Aを見た人はこんなQ&Aも見ています


おすすめ情報

このQ&Aを見た人がよく見るQ&A