マクロを作成しているときに、ユーザーが選択を行ったかどうかを判断する必要がある場合が何度もあります。マクロでこれを行う方法はたくさんあります。次のコードは、VBAでこれを実現するための1つの可能な方法を示しています。現在選択範囲がある場合は、フラグの値bInSelectionをTrueに設定します。それ以外の場合、bInSelectionはFalseに設定されます。

Dim bInSelection As Boolean

bInSelection = False If Selection.Type=wdSelectionIP Then     bInselection=True End If

この方法のように、選択範囲の長さがゼロより大きいかどうかをチェックするアプローチを使用できるかどうか疑問に思うかもしれません。

Dim bInSelection As Boolean

bInSelection = False If Len(Selection) > 0 Then     bInselection=True End If

このアプローチは機能しません。その理由は、選択が行われていない場合(挿入ポイントが折りたたまれて点滅している場合)でも、Wordは選択長1を返すためです。これは論理的に意味がないため、少し厄介です。したがって、上記の最初の例のように、SelectionオブジェクトのTypeプロパティを確認する必要があります。さらに短くしたい場合は、以下を使用できます:

Dim bInSelection As Boolean

bInselection=(Selection.Type=wdSelectionIP)

注:

このページ(または_WordTips_サイトの他のページ)で説明されているマクロの使用方法を知りたい場合は、役立つ情報を含む特別なページを用意しました。

_WordTips_は、費用効果の高いMicrosoftWordトレーニングのソースです。

(Microsoft Wordは、世界で最も人気のあるワードプロセッシングソフトウェアです。)このヒント(12175)は、Microsoft Word 2007、2010、2013、2016、2019、およびOffice 365のWordに適用されます。このヒントのバージョンは、ここにWordの古いメニューインターフェイス: