★Select Case 条件式の答えがたくさん!
 

◎ 条件式の答えがAの場合、Bの場合、Cの場合、Dの場合、Eの場合と複数になるときに便利なステートメントです。

If...Then...Elseステートメントを使ったときのElseIfの後に条件式を一回ずつ記述するような代わりに使いますよ。

  Select Case 条件式
     
     Case 答えA

            Aの処理

     Case 答えB

            Bの処理

     Case 答えC

            Cの処理

     Case 答えD

            Dの処理

  End Select

 例 セルB3の値が、"足し算" なら B1+C1=D1
         の値が、"引き算" なら B1−C1=D1
        の値が、"掛け算" なら B1×C1=D1
        の値が、"割り算" なら B1÷C1=D1
   で計算をしなさい。答えはD1に入力してちょうだい。

こんな感じで簡単な問題に対して、答えが複数になり、それぞれの答えに対して処理を変えたい時には、実に便利なツールです。

 とりあえずB1には"6"を、C1には"3"を入力しました。
それからついでにシート上にコマンドボタンをひとつ貼り付けましょう。
貼り付けたら、ボタンをダブルクリックして、VBE画面を出します。


まずプロパティ画面でCaptionだけ”答え”と書き換えておきましょうね。



続いてコードを記述しますよ。


Private Sub CommandButton1_Click()

'A1の値を条件にして、B1とC1の計算方法を変化させD1に結果を返します。
  Select Case Range("A1")

    Case "足し算"
      Range("D1") = Range("B1") + Range("C1")

    Case "引き算"
      Range("D1") = Range("B1") - Range("C1")

    Case "掛け算"
      Range("D1") = Range("B1") * Range("C1")

    Case "割り算"
      Range("D1") = Range("B1") / Range("C1")

  End Select

End Sub


さて実行結果はどうでしょうか?
A1にイチイチ足し算や引き算って入力するのが面倒な方は、コンボボックスやリストボックスなどいろいろなツールで工夫して下さいね。私は手を抜いてやめておきます。








うまく出来ましたか?
Select Caseの答えの中にまたIf構文なんかの入れ子をしてもOKです。
いろいろ工夫すると複雑なプログラムも作れますよ。
私が作ったシートはこちら・・・ダウンロード

[トップ][前へ][ステートメント][次へ]