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

2011年7月9日

日経パソコンでの第3回目の連載記事にて、表の行を挿入するマクロを紹介いたしました。

詳細は、「単純作業の繰り返しこそ自動化せよ 」の2ページ目と3ページ目をご覧ください。

このマクロは、カーソルが表の中にある場合にだけ実行されます。

そもそも行を追加・削除するマクロですから、表と関係のない部分で作動してしまうとうれしくないですよね。

そのマクロで利用したのが、現在のカーソル位置が表の中にあるのかどうかを判定するものです。

今回は、その判定に用いたInformationプロパティを紹介します。

このマクロでできること

カーソル位置の情報を取得します。

例えば、以下のようなものがあります。

・ページ/セクション番号など
・文書中での位置(行など)
・モード(上書きモード、CapsLockキーの状態など)
・カーソルの位置の領域判定(ヘッダー/フッター、表、脚注など)
・表の情報(最大行数、最大列数など)

これを用いることで、「カーソルが表の中にあれば、○○する」という処理も可能になるわけですね。

詳細はマイクロソフトのサポート記事「カーソル位置の情報を取得する方法 」をご覧ください。

ただ、以前の「現在のカーソル位置の段落番号を取得するマクロ 」にも書きましたが、Wordの標準のプロパティでは、現在のカーソル位置の段落番号は取得できませんのでご注意を。

マクロの解説

青文字の定数を変更することで、様々な情報を取得できます。

上記のサポート記事で定数が解説されています。

下記のマクロでは、単純にメッセージボックスで情報を表示してくれます。このマクロだけでは、実用性はないですね(笑)。

マクロ


Sub Information_Retrieve()
  MsgBox Selection.Information(wdFirstCharacterLineNumber)
End Sub

関連記事

単純作業の繰り返しこそ自動化せよ  (日経パソコン連載記事)

カーソル位置の情報を取得する方法  (マイクロソフトサポート記事)

現在のカーソル位置の段落番号を取得するマクロ

-コード
-,