【VBA】NothingであるかIf文で判定する方法(Is演算子)
今回はオブジェクト変数がNothingであるかIf文で判定する方法を紹介します。
サンプルコードで具体例を紹介しますが、VBAにはオブジェクトの取得に失敗するとNothingを返すメソッドやプロパティがあります。
オブジェクトの取得に失敗した場合、そのまま処理を続けるとエラーが発生してしまいます。
そのため、Nothingであるかを判定してIf文で処理分岐させてあげましょう。
NothingであるかIf文で判定する方法(Is演算子)
Sub CheckObject()
'アクティブなグラフ(Chart)があるか判定
Dim actChart As Chart
Set actChart = ActiveChart
'アクティブなグラフが無ければExit
If actChart Is Nothing Then
Exit Sub
End If
End Sub
オブジェクト変数がNothingであるかどうかはIs演算子で判定します。
actChart Is Nothing
このようにするとオブジェクト変数actChartがNothingの場合はTrueが返されます。
そのためこれとIf文を組み合わせることで処理を分岐させることができます。
サンプルコードではアクティブなグラフがなければ終了させる処理を記載しています。
Nothingの反対をIf文で判定する方法(Not演算子)
Sub CheckObject2()
'アクティブなグラフ(Chart)があるか判定
Dim actChart As Chart
Set actChart = ActiveChart
'アクティブなグラフがある場合のみ処理を行う
If Not actChart Is Nothing Then
行いたい処理
End If
End Sub
Nothingの反対を判定したいときにはIf文の箇所を反転させればOKです。
判定を反転させるためにはNot演算子を使用します。
Not actChart Is Nothing
Not演算子はTrueとFalseを反転させる演算子です。
そのため、actChart Is NothingがFalseの場合はNot actChart Is NothingはTrueとなります。
サンプルコードのようにIf文の後にNotを入れて、判定を反転させましょう。