ニューラル機械翻訳の支援ツール「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