「word2010 マクロ ページ移動」
「word vba 3ページ目まで移動」
といった検索で、このサイト・インストラクターのネタ帳へのアクセスがあることに気が付きました。
ページ移動を行うWordマクロ・Word VBA(Visual Basic for Applications)のコードを探している方による検索です。
ページ移動を行うサンプルマクロ
いつものように参考になりそうな簡単なマクロをご紹介しておきます。
Selection.GoTo _
What:=wdGoToPage, _
Which:=2
上記のマクロを実行するとカーソルが2ページ目に移動します。
Selection.GoToメソッドの、引数・Whatに定数・wdGoToPageを指定するとページ移動を行うことができます。移動先のページは、引数・Whichに指定します。
Selection.GoToメソッドの引数は候補が自動メンバー表示されなくて残念
ページ移動を行うWord VBAのコード自体は、上記のとおり、とても簡単なものです。
ですが、この記事を書くにあたってこのプロシージャを作成しているときに、ちょっと気になることがあったので、Microsoftに対する嫌味を書いておきます。
SelectionオブジェクトのGoToメソッドでは、引数を入力するときに候補が自動メンバー表示されない件についてです。
上記のように「Selection.GoTo What:=」まで入力しても、自動メンバー表示は行われません。[Ctrl]+[スペース]を押しても定数の候補は表示されません。
ところが、GoToメソッドに似たGoToNextメソッドの場合は、下図のように定数が自動メンバー表示されるのです。
まったく関係のないメソッドなら、まぁしょうがないなぁと思いますが、同じオブジェクトのこういう似たメソッドの場合、仕様を統一しておいてほしかったなあ、と思います。(頑張れMicrosoft!)
Selection.GoToメソッドで自動メンバー表示されない理由
なぜこんなことになるのかは、オブジェクトブラウザーを確認するとわかります。
まずは、候補が自動メンバー表示されるSelection.GoToNextメソッドの詳細ペインを確認すると、
上図のように
Function GoToNext(What As WdGoToItem) As Range
と定義されています。
ポイントは引数・Whatの後ろの「As WdGoToItem」です。
これは、GoToNextメソッドの引数・Whatに、WdGoToItem列挙に定義されている以下のような定数を、
指定できることを表しています。
このような作りになっているため、Selection.GoToNextメソッドでは、コードを入力しようとしたときに候補が表示されるわけです。
VBAのコードを書く側としては、こういう作りに、是非しておいていただきたいところです。
一方、今回のマクロでご紹介した、候補の表示されないSelection.GoToメソッドをオブジェクトブラウザーで確認すると、下図のようになっています。
先のGoToNextメソッドと同じくWhatという名前の引数がありますが、Whatの後ろに「As WdGoToItem」といった記述がありません。Selection.GoToメソッドでも引数・WhatにはWdGoToItem列挙に定義されている定数を指定するにも関わらず。
これが、Selection.GoToNextメソッドでは引数の候補が自動メンバー表示されるのに、Selection.GoToメソッドでは表示されない理由です。
最終更新日時:2021-01-20 14:44
Home » ワードマクロ・Word VBAの使い方 » Selection » Word VBAでページ移動を行う