プロが教える店舗&オフィスのセキュリティ対策術

こんにちは

IFステートメントを使う際に、条件が終わる行の最後にEND IFを書かなければならない・・・
と思っているのですが、必ずしもそうではないのでしょうか?

以下の特定のセルの背景の色を変えるプロシージャ

Dim myRange as Range

For Each myRange in worksheets(2).Range("a1:b10")
If myRange >=70 then myRange.Interior.ColorIndex=5
Next

というプロシージャではエラーメッセージの「IFブロックに対応するEND IFがありません」というメッセージが出ません。
なぜこなるのでしょうか?

A 回答 (2件)

「then」の後が同じ行で、1処理だけの場合は不要です。


ただし「 _」で行を分けた場合は複数行ではなく1行とみなされます。

たとえば「If myRange >=70 then myRange.Interior.ColorIndex=5」を
If myRange >=70 then _
myRange.Interior.ColorIndex=5
のように別けても問題ありません。
    • good
    • 0

MS Office Dev Center - If...Then...Else ステートメント


https://msdn.microsoft.com/ja-jp/library/office/ …

If...Then...Else ステートメントは、【1行形式】と【ブロック形式】の2通りでの記述が可能です。

| 構文
【1行形式】↓
If condition Then [statements] [Else elsestatements]

【ブロック形式】↓
| または、ブロック形式の構文を使用できます。
| If condition Then
|  [statements]
| [ElseIf condition-n Then
|  [elseifstatements]
| [Else
|  [elsestatements]]
| End If

| 短く、簡単なテストを実行する場合は、1 行の形式 (1 番目の構文) を使用できます。
    • good
    • 0
この回答へのお礼

回答ありがとうございます

参考になりました!

お礼日時:2017/08/14 15:32

お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!