• ベストアンサー
※ ChatGPTを利用し、要約された質問です(原文:ワード 画面移動後に元の画面へ戻す方法)

ワード画面移動後に元の画面へ戻す方法

このQ&Aのポイント
  • ワードのマクロで検索・置換などの処理を行うと画面がスクロールしてしまう場合、元の画面に戻すことは可能でしょうか?
  • 例えば、検索・置換により最上位行が移動した後、再び元の画面の位置に戻す方法を知りたいです。
  • 目的はマクロで実行した検索・置換の影響を編集中の画面に出さずに、編集を続けさせることです。

質問者が選んだベストアンサー

  • ベストアンサー
回答No.1

スクロールするのは、[マクロの記録]で記録したものですか? どのような動作を記録したのでしょうか? [マクロの記録]をした場合、[置換]ダイアログなどで記録をしたときの 動作と、マクロ実行時の動作は基本的に同じになります。 処理することでカーソル位置が変わるということは、[すべて置換]など での動作ではなく、個々に処理したときの動作かと思います。 [マクロの記録]したものだと、Selection.Findで検索するので、個別に 処理した場合にスクロールしてしまいます。 これをRange.Findでの検索方法に書き換えると、[置換]ダイアログとの 関連がないので、スクロールすることなく(セレクトされないで)処理 されます。

nao_0109
質問者

補足

enunokokoroさん、ありがとうございました。 SelectionではなくRangeを使うのがポイントですね。 Wordマクロのヘルプを参考に 画面をスクロールさせずに置換できるマクロができあがりました。 こんな感じでーす。 Dim rng As Range Set rng = ActiveDocument.Range(0, 0) n = 0 With rng.Find ' 置換する文字 .Text = "・??" ' 検索パラメータ .MatchCase = False .MatchByte = False .MatchWildcards = True ' 置換ループ While .Execute ' 段落番号をインクリメント n = n + 1 With .Replacement ' 置換後の文字 .Text = "・" + StrConv(CStr(n)), vbWide) End With ' 置換実行 .Execute Replace:=wdReplaceOne Wend End With

関連するQ&A