「word マクロ range nothing判定」
という検索キーワードでアクセスがありました。
Word VBAで、Range型のオブジェクト変数がNothingかどうかを判定するには、どのようなコードを書けばいいのか探していた方による検索です。
RangeがNothingかを判定するサンプル
以下のSubプロシージャが参考になるでしょうか。
Dim rng As Range
If rng Is Nothing Then
MsgBox "Nothingです。"
Else
MsgBox "Nothingではありません。"
End If
Set rng = ActiveDocument.Range(0, 0)
If rng Is Nothing Then
MsgBox "Nothingです。"
Else
MsgBox "Nothingではありません。"
End If
Set rng = Nothing
If rng Is Nothing Then
MsgBox "Nothingです。"
Else
MsgBox "Nothingではありません。"
End If
実行すると
「Nothingです。」
「Nothingではありません。」
「Nothingです。」
とメッセージボックスが順番に表示されます。
NothingかどうかはIs演算子で判定
Word VBAに限らずExcel VBAでもAccess VBAでも、VBAではIs演算子を使えば、Nothingかどうかを判定できます。
上記のSubプロシージャには、3か所に
If rng Is Nothing Then
というIf文があります。このIsがIs演算子です。
オブジェクト変数をローカルウィンドウで確認しましょう
「word マクロ range nothing判定」
と検索なさった方には、拙著『Excel VBAユーザーのためのWord VBA入門(1): Document・Range・Selectionの基本編』などで繰り返し行っているように、ステップ実行してオブジェクト変数をローカルウィンドウで確認することをおすすめします。
上記のSubプロシージャから、If文を削除した以下のような状態で確認するのがイイでしょう。
Dim rng As Range
Set rng = ActiveDocument.Range(0, 0)
Set rng = Nothing
End Sub
上記のSubプロシージャをステップ実行して、
Set rng = ActiveDocument.Range(0, 0)
を実行した直後だけ、Range型のオブジェクト変数rngがNothingでなくなり、
ステップ実行の開始直後や、
Set rng = Nothing
を実行するとNothingになることを、
ご確認ください。
最終更新日時:2024-03-01 05:58
Home » ワードマクロ・Word VBAの使い方 » Word.Rangeオブジェクト » Word VBAでRange型変数がNothingかを判定する