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

2019年2月28日

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

-コード
-,