【Word VBA】カーソル位置を取得するWordマクロ

2010年5月4日

プログラムを書いていると、カーソルの位置を調べたり、または

特定の位置にカーソルを移動したいことがあります。
そのときに役立つの1行マクロです。

現在のカーソル位置を取得

文字列が選択されている場合に、選択範囲の開始位置と終了位置を取得するマクロです。

開始位置 Selection.Start
終了位置 Selection.End

勘がいい方なら、察しがつくとおり、文字列を選択していない場合、つまり、カーソルが置かれた状態 | を示している状態では、Selection.Start と Selection.End とは同じ値を示します。

使い方

これ、私は理解するのに時間がかかりましたが、プログラム特有の使い方ですね。

①値を取得する場合」と②値を代入する場合」とがあるんです。

①値を取得する場合

これは、現在置かれているカーソル(もしくは、現在選択されている文字列の範囲)から、開始位置と終了位置を取得する場合を意味します。

以下の1行マクロは、カーソルの開始位置をメッセージボックスで表示します。
(おまけの1行マクロ)

MsgBox Selection.Start

上のプログラムは、「Selection.Start で取得した値を表示しなさい」という意味です。

MsgBox を使うと、ワードと対話できるようになるので、プログラミングがいっそう楽しくなります。今回は、説明は省きます。

②値を代入する場合

今度は、逆に、値を入れてあげる方法です。

カーソルを目的の場所に移動させるときに使います。

Selection.Start = 100
Selection.End = 120

こうすると、100文字目から120文字目の文字が選択されます。

それぞれの「値を100や120にしなさい」という意味ですね。

Selection.Start = 100
Selection.End = 100

こうすると、100文字目のところにカーソルが | の状態で表示されます。

なお、文書の一番先頭が0文字目に数えられます。

適当な数値をいれて遊んでみてください。

-コード
-