例えばAの値に2が入っているとして、このAの値によって処理を変えるとします。
これをSelect文で表現すると
A = "こんにちは"
Select Case A
Case "おはよう"
MsgBox "Aはおはようです"
Case "こんにちは"
MsgBox "Aはこんにちはです"
Case "こんばんわ"
MsgBox "Aはこんばんわです"
Case "おやすみなさい"
MsgBox "Aはおやすみなさいです"
Case Else
MsgBox "Aはそれ以外です"
End Selectとなります。If文で表現すると
A = "こんにちは"
If A = "おはよう" Then
MsgBox "Aはおはようです"
ElseIf A = "こんにちは" Then
MsgBox "Aはこんにちはです"
ElseIf A = "こんばんわ" Then
MsgBox "Aはこんばんわです"
ElseIf A = "おやすみなさい" Then
MsgBox "Aはおやすみなさいです"
Else
MsgBox "Aはそれ以外です"
End Ifとなります。
どちらで書いても結果は
で変わりません。
ではSelect文とIf文をどのように使い分ければよいのか?どちらを使うべきなのか?ですが、Select文を使えるのであればSelect文のほうが処理が速いので良い。という話を聞いたことがあります。
恐らく今のPC性能だとあまり気にする差ではないと思いますが、私はたまに100万行とかのCSVファイルを扱うときがあるので、なるべくSelect文を使うようにしています。
ではSelect文とIf文の明確な違いは何か?ですが、
Select:変数は1つしかできない
If :変数を複数使うことができる
ですね。
Select文の場合はAの値から選ぶしかできず、例えば
Select Case A
とした場合、
Case A="こんにちは"
だとAがこんにちはのとき
Case A<>"こんにちは"
だとAがこんにちはでないとき
という感じでSelect Caseで決めたものに対して選ぶことしかできません。
逆にIf文を使うと
A = "こんにちは"
B = "こんにちわ"
If A = "おはよう" Then
MsgBox "Aはおはようです"
ElseIf A = "こんにちは" And B = "こんにちわ" Then
MsgBox "AもBもこんにちはです"
Else
MsgBox "Aはそれ以外です"
End Ifのように1つのIf文で複数の変数から条件を設定することが可能です。
このようにSelect文とIf文の違いを理解しておくことで、場面場面によって最適なやり方を考えることができるようになります。

0 件のコメント:
コメントを投稿