Home » ワードマクロ・Word VBAの使い方 » Selection » 何も選択されていない場合にExitするWord VBAのコード

何も選択されていない場合にExitするWord VBAのコード

対象:Word2007, Word2010, Word2013

「word vba selection 選択されていない場合 exit」
「word vba "何も選択されていない" 終了」
といった検索で、このサイト・インストラクターのネタ帳へのアクセスがありました。

Word上で何も選択されていない場合にはプロシージャを終了するVBA(Visual Basic for Applications)のコードをどう書けばいいのかを探している方による検索です。

「何も選択されていない場合」というのが、本当のところ、どういう状態を意味しているのかによって、求められているコードは変わってきます。

ここでは「何も選択されていない場合」というキーワードから考えられる2つのマクロをご紹介しておきます。

[スポンサードリンク]

SelectionオブジェクトのTypeプロパティを使ったサンプルマクロ

まずは「何も選択されていない場合」というキーワードを、杓子定規に解釈したマクロです。

Sub 何も選択されていないときにExitする()

 If Selection.Type = wdNoSelection Then Exit Sub

 MsgBox "何かが選択されています。"

End Sub

Word上で選択されているものを表すSelectionオブジェクトにTypeプロパティが存在しています。

Selection.Typeプロパティは、選択されているものに応じて、WdSelectionType列挙に定義されている以下のような値を返してきます。

何も選択されていない場合にExitするWord VBAのコード

この中のwdNoSelectionが何も選択されていない状態を表します。

このことを利用して、SelectionオブジェクトのTypeプロパティがwdNoSelectionのときにSubプロシージャを終了して、
 If Selection.Type = wdNoSelection Then Exit Sub

そうではなかったときにメッセージを表示しています。
 MsgBox "何かが選択されています。"

本文中で1文字も選択されていないかどうかを判定するサンプルマクロ

「何も選択されていない場合」というキーワードをそのまま解釈したマクロをご紹介しましたが、「1文字も選択されていない場合」という条件を意味している可能性のほうが高いのではないかと考えています。

その場合、以下のようなマクロが参考になるでしょう。

Sub 本文中で1文字も選択されていないときにExitする()

 With Selection
  If .Start = .End Then Exit Sub
  MsgBox .Text
 End With

End Sub

上記のマクロを実行すると1文字も選択されていない場合にはSubプロシージャを終了し、そうでない場合は選択されている文字列がメッセージボックスに表示されます。

Selectionオブジェクトの
Startプロパティが選択範囲の文字の開始位置
Endプロパティが選択範囲の文字の終了位置
をそれぞれ表しています。

このSelection.StartとSelection.Endが同じ場合が1文字も選択されていない状態ですから、上記のマクロでは、
 With Selection
  If .Start = .End Then Exit Sub
としてSubプロシージャからExitしています。

[スポンサードリンク]

Home » ワードマクロ・Word VBAの使い方 » Selection » 何も選択されていない場合にExitするWord VBAのコード

「Selection」の記事一覧

検索


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

.