このサイトの記事内では「アフィリエイト広告」などの広告を掲載している場合があります。
消費者庁が問題としている「誇大な宣伝や表現」とならないよう配慮しコンテンツを制作しておりますのでご安心ください。
問題のある表現が見つかりましたらお問い合わせよりご一報いただけますと幸いです。

【VBA】NothingであるかIf文で判定する方法(Is演算子)

2024年11月6日

【VBA】NothingであるかIf文で判定する方法(Is演算子)

今回はオブジェクト変数がNothingであるかIf文で判定する方法を紹介します。

サンプルコードで具体例を紹介しますが、VBAにはオブジェクトの取得に失敗するとNothingを返すメソッドやプロパティがあります。

オブジェクトの取得に失敗した場合、そのまま処理を続けるとエラーが発生してしまいます。

そのため、Nothingであるかを判定してIf文で処理分岐させてあげましょう。

VBAが難しいと感じたら
ココナラにてVBAの作成依頼を受け付けています。
ご依頼・ご相談はこちらから

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を入れて、判定を反転させましょう。

《VBA上級者になりたい人へ》
VBA上級者を目指したい人にはパーフェクトExcel VBA一択です。
この本を読み切れば間違いなくVBA上級者になれます。

created by Rinker
技術評論社
¥3,608 (2024/11/21 14:41:17時点 Amazon調べ-詳細)
VBAが難しいと感じたら
ココナラにてVBAの作成依頼を受け付けています。
ご依頼・ご相談はこちらから

VBA

Posted by やろまい