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

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

2024年8月15日

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

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

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

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

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

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

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上級者を目指したい人にはパーフェクトExcel VBA一択です。
この本を読み切れば間違いなくVBA上級者になれます。

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

VBA

Posted by やろまい