Home > Excel VBA Macro フロー制御 > FAQ

If … Is Nothing Then を If … Is There Then のように変えたいが?

Question 84.4 Excel VBA Borad (掲示板)より Previous Next
マクロ初心者です。
アクティブセルがある範囲内にある場合の、IF~THEN の使い方を教えてください。
ここのホームページで下記のマクロを見つけました。
Sub アクティブセルが指定セル範囲内にあるかを調べる()
    Set 指定セル範囲 = Range("B2:F20")
    Set 共有セル範囲 = Intersect(ActiveCell, 指定セル範囲)
    If 共有セル範囲 Is Nothing Then
        MsgBox "アクティブセルは指定セル範囲内にありません。", , "すぐマク"
    Else
        MsgBox "アクティブセルは指定セル範囲内にあります。", , "すぐマク"
    End If
End Sub
が、 If … Is Nothing Then となっているのを、If … Is There Then の様な書き方に変えたいのですが分かりません。
ご教授頂ければ幸いです。
Answer   2007.9.13 永井善王
Not演算子で式の論理否定を求めれば、可能になります。 下記のとおりです。
Sub アクティブセルが指定セル範囲内にあるかを調べる()
    Set 指定セル範囲 = Range("B2:F20")
    Set 共有セル範囲 = Intersect(ActiveCell, 指定セル範囲)
    If Not 共有セル範囲 Is Nothing Then
        MsgBox "アクティブセルは指定セル範囲内にあります。", , "すぐマク"
    End If
End Sub
こうした方がマクロのタイトルと合致しますね。 該当ページに加筆しておきました。 ご確認ください。
ありがとう。

 

Excel VBA Macro

Excel DownLoad