【Word VBA】文書先頭から指定ページの末尾までを選択するWordマクロ

ニューラル機械翻訳の支援ツール「GreenT」の開発で特定範囲の文字列の取得が必要になり作りました。ほとんどメモのようなコードですが、参考までに掲載しておきます。

このマクロでできること

指定したページの末尾までの範囲を選択します。このサンプルコードでは10ページ目の末尾まで選択できます。

マクロの解説

Selection.GoToメソッドを使いページを選択しました。Rangeオブジェクトを使おうと思ったのですがうまくいかなかったのでSelectionオブジェクトにしました。

GoToメソッドでカーソルをジャンプさせます。この動きは、Ctrl + G で表示されるジャンプのダイアログでページ指定をしたときと同じです。その位置からページの先頭までを選択するという方法です。

サンプルでは10ページ目の末尾までを選択したいので、11ページの先頭にカーソルをジャンプさせます(5行目)。そして、文書の先頭からカーソル位置までを選択すると、10ページの末尾までが選択されるわけです(6行目)。

もう少しきれいな書き方がありそうですが、ひとまずこれで動いているのでよしとします。

ちなみに、GoToメソッドで文書のページ数よりも大きな数字を指定すると、文書の末尾にカーソルがジャンプします。

マクロ


Sub 指定ページ範囲を選択する()

 Const myPage As Integer = 10  'ページ数を指定する
 
 Selection.GoTo What:=wdGoToPage, Count:=myPage + 1
 ActiveDocument.Range(0, Selection.Start).Select

End Sub

コメント

  1. より:

    最終ページでやるとエラーが出ます。

    • 新田順也 より:

      コメントをありがとうございます。
      Wordのバージョンはいくつでしょうか。Word 365の場合にはエラーメッセージが出ませんでした。
      あさんの環境で、[検索と置換]ダイアログボックスの[ジャンプ]タブで[移動先]を「ページ」に設定して検索をする際に、文書のページ数よりも大きな数字を入力して検索をしたときにどうなりますか?

トップへ戻る