人様のコードを読むのは良いことと思いますが、あくまでもキレイに記述してあるソースコード出ないと意味がありません。また、読む人の習熟度に応じても参考になるコード、ならないコードもあるとは思いますので難しい話です。
この度、人様のソースコードを読んで、私が早合点して失敗した事例を自身の備忘録として、ここに残しておきます。
スポンサーリンク
Select Case True って何だ?きっとこういうことだろう
今となってはなぜそのように考えたのかは自分でもわかりません。冷静に考えればそのような判断はしないと思います。しかし、その時は確信がありました。「こう動くに違いない」と。
では、問題です。エクセルシートが次の状態でボタンをクリックすると、以下のコードはどのように動くでしょうか?
Private Sub CommandButton1_Click() Select Case True Case Range("A1").Text = "A1" Debug.Print "A1" Case Range("A2").Text = "A2" Debug.Print "A2" Case Range("A3").Text = "A3" Debug.Print "A3" End Select End Sub
正解は、イミディエイトウィンドウに、”A1″とだけ出力されます。しかし、私は、”A1″と”A2″が出力されて、A3だけが出力されないと考えていました。マルチケース(このような機能はない)みたいな動作となるとの思い込みです。
確認もせずに決めつけて、後に多くの修正が必要となりました。早合点はいけません。確認は大切です。反省しています。
しかも、軽くバカにされた気配も感じました。
Select Case False
この部分はおまけです。Select Case True で動作するなら、Select Case False も大丈夫なはずです。上記のサンプルコードを Select Case False に書き換えて実行すると、”A3″とだけ、出力されます。これは確認しました (-_-;) 。