Home » ワードマクロ・Word VBAの使い方 » Selection » Word VBAでページ移動を行う

Word VBAでページ移動を行う

対象:Word2007, Word2010, Word2013

「word2010 マクロ ページ移動」
「word vba 3ページ目まで移動」
といった検索で、このサイト・インストラクターのネタ帳へのアクセスがあることに気が付きました。

ページ移動を行うWordマクロ・Word VBA(Visual Basic for Applications)のコードを探している方による検索です。

[スポンサードリンク]

ページ移動を行うサンプルマクロ

いつものように参考になりそうな簡単なマクロをご紹介しておきます。

Sub ページ移動を行う()

 Selection.GoTo _
  What:=wdGoToPage, _
  Which:=2

End Sub

上記のマクロを実行するとカーソルが2ページ目に移動します。

Selection.GoToメソッドの、引数・Whatに定数・wdGoToPageを指定するとページ移動を行うことができます。移動先のページは、引数・Whichに指定します。

Selection.GoToメソッドの引数は候補が自動メンバー表示されなくて残念

ページ移動を行うWord VBAのコード自体は、上記のとおり、とても簡単なものです。

ですが、この記事を書くにあたってこのプロシージャを作成しているときに、ちょっと気になることがあったので、Microsoftに対する嫌味を書いておきます。

SelectionオブジェクトのGoToメソッドでは、引数を入力するときに候補が自動メンバー表示されない件についてです。

ページ移動を行うWordマクロ

上記のように「Selection.GoTo What:=」まで入力しても、自動メンバー表示は行われません。[Ctrl]+[スペース]を押しても定数の候補は表示されません。

ところが、GoToメソッドに似たGoToNextメソッドの場合は、下図のように定数が自動メンバー表示されるのです。

ページ移動を行うWordマクロ

まったく関係のないメソッドなら、まぁしょうがないなぁと思いますが、同じオブジェクトのこういう似たメソッドの場合、仕様を統一しておいてほしかったなあ、と思います。(頑張れMicrosoft!)

Selection.GoToメソッドで自動メンバー表示されない理由

なぜこんなことになるのかは、オブジェクトブラウザーを確認するとわかります。

まずは、候補が自動メンバー表示されるSelection.GoToNextメソッドの詳細ペインを確認すると、

ページ移動を行うWordマクロ

上図のように
 Function GoToNext(What As WdGoToItem) As Range
と定義されています。

ポイントは引数・Whatの後ろの「As WdGoToItem」です。

これは、GoToNextメソッドの引数・Whatに、WdGoToItem列挙に定義されている以下のような定数を、

ページ移動を行うWordマクロ

指定できることを表しています。

このような作りになっているため、Selection.GoToNextメソッドでは、コードを入力しようとしたときに候補が表示されるわけです。

VBAのコードを書く側としては、こういう作りに、是非しておいていただきたいところです。

一方、今回のマクロでご紹介した、候補の表示されないSelection.GoToメソッドをオブジェクトブラウザーで確認すると、下図のようになっています。

ページ移動を行うWordマクロ

先のGoToNextメソッドと同じくWhatという名前の引数がありますが、Whatの後ろに「As WdGoToItem」といった記述がありません。Selection.GoToメソッドでも引数・WhatにはWdGoToItem列挙に定義されている定数を指定するにも関わらず。

これが、Selection.GoToNextメソッドでは引数の候補が自動メンバー表示されるのに、Selection.GoToメソッドでは表示されない理由です。

最終更新日時:2021-01-20 14:44

[スポンサードリンク]

Home » ワードマクロ・Word VBAの使い方 » Selection » Word VBAでページ移動を行う

「Selection」の記事一覧

検索


Copyright © インストラクターのネタ帳 All Rights Reserved.

.