Home » ワードマクロ・Word VBAの使い方 » Word.Rangeオブジェクト » Word VBAでRange型変数がNothingかを判定する

Word VBAでRange型変数がNothingかを判定する

動作検証バージョン:64bit Windows 10 Pro + 32bit Word(バージョン2005 ビルド12827.20268 Microsoft Store)

ローカルウィンドウでオブジェクト変数がNothingであることを確認する

「word マクロ range nothing判定」
という検索キーワードでアクセスがありました。

Word VBAで、Range型のオブジェクト変数がNothingかどうかを判定するには、どのようなコードを書けばいいのか探していた方による検索です。

RangeがNothingかを判定するサンプル

以下のSubプロシージャが参考になるでしょうか。

Sub RangeがNothingか判定する()
 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

End Sub

実行すると
「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文を削除した以下のような状態で確認するのがイイでしょう。

Sub RangeがNothingか判定する()
 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でなくなり、

ローカルウィンドウでオブジェクト変数がNothingでないことを確認する

ステップ実行の開始直後や、

Set rng = Nothing

を実行するとNothingになることを、

ローカルウィンドウでオブジェクト変数がNothingであることを確認する

ご確認ください。

最終更新日時:2024-03-01 05:58

[スポンサードリンク]

Home » ワードマクロ・Word VBAの使い方 » Word.Rangeオブジェクト » Word VBAでRange型変数がNothingかを判定する

「Word.Rangeオブジェクト」の記事一覧

検索


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

.