Home » ワードマクロ・Word VBAの使い方 » Word VBAでRange型変数がNothingか判定する

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

「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判定」
と検索なさった方には、拙著『いちばんやさしいPowerPoint VBAの教本』で繰り返し行っているように、ステップ実行してオブジェクト変数をローカルウィンドウで確認することをおすすめします。

上記の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でなくなり、

ステップ実行の開始直後や、
  Set rng = Nothing
を実行するとNothingになることをを、

ご確認ください。

最終更新日時:2020-06-18 13:51

[スポンサードリンク]

Home » ワードマクロ・Word VBAの使い方 » Word VBAでRange型変数がNothingか判定する

TrackBack:0

TrackBack URL

Home » ワードマクロ・Word VBAの使い方 » Word VBAでRange型変数がNothingか判定する

「ワードマクロ・Word VBAの使い方」の記事一覧

検索


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

.