プログラムを書いていると、カーソルの位置を調べたり、または
特定の位置にカーソルを移動したいことがあります。
そのときに役立つの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文字目に数えられます。
適当な数値をいれて遊んでみてください。