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

【VBA】End Ifがない。省略できる条件とは

If x > 0 Then MsgBox "xは正の値です"

このようなEnd IfのないIf文を見かけたことがありますか?

このコードはEnd Ifがありませんが、エラーのない正しいコードです。

普通、If文とEnd Ifはセットで教えられるので、間違ったコードと思ってしまうのは無理ありません。

VBAでは、条件を満たすことでEnd Ifを省略することができます。

今回はEnd Ifを省略できる条件を説明します。

VBAが難しいと感じたら
VBAのプロに代わりに作ってもらうのはいかがでしょうか?
ココナラでVBAの作成請負を受け付けています。お気軽にご相談ください。

End Ifを省略できる条件

VBAのIf文では、通常は条件が真である場合に実行するブロックを指定して、その後にEnd Ifキーワードが必要です。

ただし、次のコードではEnd Ifを省略することができます。

Sub Sample1()
    Dim x As Integer
    
    x = 10
    
    If x > 0 Then MsgBox "xは正の値です"
End Sub

省略できる条件は改行の有無になります。

このコードではThenのあとに、改行しないでMsgBox関数を書いています。

このように改行なしならば、End Ifは省略可能です。

Thenで実行する内容が短いならば、すっきりしてとても見やすくなります。

反対に、Thenで実行する内容がたくさんあるならば改行は必要で、End Ifも必要ということになります。

  • Thenの後に改行なし:省略可能
  • Thenの後に改行あり:省略不可

まとめるとこのようになります。

End Ifの分だけコード数が減るので、Thenで実行する内容が短いならば省略するのがおすすめです。

関連記事

VBAが難しいと感じたら
VBAのプロに代わりに作ってもらうのはいかがでしょうか?
ココナラでVBAの作成請負を受け付けています。お気軽にご相談ください。

VBA

Posted by やろまい