回答1:
合ってる
回答2:
この条件では結果は変わらないけど、前者の条件に一致した際に後者の条件が評価されるか否かが違う
Aでは前者の条件の一致不一致に関係なく後者の条件が評価されるが、Bでは前者の条件が不一致の場合のみ後者の条件が評価される
条件を「>=10 → 10以上、<=5 → 5以下」から「<=5 → 5以下、<=10 → 10以下」にしてみると結果も違うよ
この条件でA1が3の場合、Aの書き方だと<=5に一致し"5以下"が入力されたあと、<=10の条件も評価され
これにも一致するので更に"10以下"が入力され、結果"10以下"が入力された状態で処理が終わる
対してBの書き方だと<=5に一致し"5以下"が入力されたら、<=10の条件は無視され一致していても"10以下"の入力は行われず
結果"5以下"が入力された状態で処理が終わる
回答3:
問題ない
ElseIfが無くてもIf文が成立するように、Else文が無くてもIf文は成立する
解説サイトでは使える物を説明しなかったら不備になるので書いてあるだけ
例文とかではなく構文解説では[ ]で囲ってあると思うが、[ ]ってのは省略可能って意味
捕捉:
If文ではなくSelect Case文を使うとこうなる
Select Case Range("A1").Value
Case Is <= 5
Range("B1").Value = "5以下"
Case Is >= 10
Range("B1").Value = "10以上"
End Select
因みにこれはBと同じ意味を持つ
>>522の条件では@、A、B、更に上のSelectも同じ結果になるがコードの意味には違いがある
@とAは表記が違うだけで意味は同じだが、@とBまたはAとBは「回答2」で説明したように意味も違う
今回のような場合、前者の条件に一致したら後者の評価を行う意味はないので
Bもしくは上にSelect文が正解であり、@とAは「(この条件では)結果に不都合はないが不正解」ということになる