例えば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 件のコメント:
コメントを投稿