[ いきなりVBA ]
いきなりVBA 第1回 LOG
前回のSelect Caseで始まるコードで、想定外の文字列が入った時に“何も起きない”という話をしました。
プログラムめいたものをやっていると、この“何も起きない”というのはクセモノです。
エラーが出て、処理されない場合は、自分が間違った事をすぐに自覚できます。
ところが何も起きない場合、処理が正常に行われたのかそうでないのか、分かりづらいのです。
Select~の場合、Case Elseという分岐を設ける事によって、こうした状況を改善する事ができます。
前回のコードで、書き方がまずいとしたのは、このCase Elseを書いていない点です。
前回のコードにCase Elseを付け足すと、こうなります。
Select Case Range("B2").Value
Case "カロライナ"
Range("C2").Value = "マッドキャッツ"
Case "テネシー"
Range("C2").Value = "スモーキーズ"
Case "ハンツヴィル"
Range("C2").Value = "スターズ"
Case "ウェストテネシー"
Range("C2").Value = "ダイヤモンドジャックス"
Case "チャタヌーガ"
Range("C2").Value = "ルックアウツ"
Case Else
Range("C2").Value = "予期していない値が入力されました。"
End Select
B2に、値の条件として指定していない値を入力して、ボタンをクリックすると...
こうなります。
条件として指定した値以外の場合すべてが、この処理になります。
前回最後に書いた、オートフィルタで制限する方法でも回避できそうですが、実際の現場では本当にユーザーって、何するか分からないんで、オートフィルタでの制限をかけたうえで、Case Elseの設定しておくべしです。
BGM♪ Everybody else / Greg Kihn Band
メロディーが綺麗で、大好きな歌です。
elseは、~以外の、というような意味ですね。everybody elseだと、他の誰でもという意味になると思います。
Case elseも、まさにCaseで指定した場合“以外”の場合という指定になります。
いきなりVBA 第1回 LOG
前回のSelect Caseで始まるコードで、想定外の文字列が入った時に“何も起きない”という話をしました。
プログラムめいたものをやっていると、この“何も起きない”というのはクセモノです。
エラーが出て、処理されない場合は、自分が間違った事をすぐに自覚できます。
ところが何も起きない場合、処理が正常に行われたのかそうでないのか、分かりづらいのです。
Select~の場合、Case Elseという分岐を設ける事によって、こうした状況を改善する事ができます。
前回のコードで、書き方がまずいとしたのは、このCase Elseを書いていない点です。
前回のコードにCase Elseを付け足すと、こうなります。
Select Case Range("B2").Value
Case "カロライナ"
Range("C2").Value = "マッドキャッツ"
Case "テネシー"
Range("C2").Value = "スモーキーズ"
Case "ハンツヴィル"
Range("C2").Value = "スターズ"
Case "ウェストテネシー"
Range("C2").Value = "ダイヤモンドジャックス"
Case "チャタヌーガ"
Range("C2").Value = "ルックアウツ"
Case Else
Range("C2").Value = "予期していない値が入力されました。"
End Select
B2に、値の条件として指定していない値を入力して、ボタンをクリックすると...
こうなります。
条件として指定した値以外の場合すべてが、この処理になります。
前回最後に書いた、オートフィルタで制限する方法でも回避できそうですが、実際の現場では本当にユーザーって、何するか分からないんで、オートフィルタでの制限をかけたうえで、Case Elseの設定しておくべしです。
BGM♪ Everybody else / Greg Kihn Band
メロディーが綺麗で、大好きな歌です。
elseは、~以外の、というような意味ですね。everybody elseだと、他の誰でもという意味になると思います。
Case elseも、まさにCaseで指定した場合“以外”の場合という指定になります。