切手代表示の例題

定型外郵便のグラム数を入れて切手代を表示する例題を考えてみましょう。定型外の規格は長辺が14センチから60センチまで、長辺+短辺+厚さが90センチまでの4キログラム以下となっています。この規格内での切手の金額を求めます。

図8:切手代実行表示画面

切手代表示のマクロのリストです

[リスト14]Kitte(Select文例題.xlsm)

Sub Kitte()
    Ans = 0
    Select Case Cells(6, 4)  '(1)
        Case 1 To 50          '(2)
                Ans = 120
        Case 51 To 100
                Ans = 140
        Case 101 To 150
                Ans = 200
        Case 151 To 250
                Ans = 240
        Case 251 To 500
                Ans = 390
        Case 501 To 1000
                Ans = 580
        Case 1001 To 2000
                Ans = 850
        Case 2001 To 40000
                Ans = 1150
    End Select
    Cells(10, 4) = Ans    '(3)
End Sub

(1)グラム数の値をCellsプロパティで設定しています。
(2)のCase文でそれぞれのグラムに合う切手代をAnsに設定しています。
(3)は切手代を表示しています。
今回「(3)Select Case 変数 Case 値1 To 値2 End Select」で作成しましたが、「(2)Select Case 変数 Case Is 条件式 End Select」で作成することもできます。余力のあるかたは、試してみてください。

処理の中にはわざわざVBAで作らなくても、Excel表にある関数群でできるものもたくさんあります。どちらが良い悪いではなく、作成者自身がどちらが作りやすいか?ということが大切だと思います。同じ処理でもVBAで悩んで作成し達成感を感じたり、せっかく作ったVBAのマクロと同じ処理をする関数をEXCEL関数群で見つけてがっかりしたり、それもまた楽しい経験ではないでしょうか?

まとめ

条件分岐、If文とSelect文を説明しました。まとめて複数行同じ処理を行いたい時のために繰り返し処理があります。次回は繰り返し処理について説明したいと思います。

WINGSプロジェクト 横塚利津子著/山田祥寛監修 <WINGSプロジェクトについて>テクニカル執筆プロジェクト(代表 山田祥寛)。海外記事の翻訳から、主にWeb開発分野の書籍・雑誌/Web記事の執筆、講演等を幅広く手がける。2009年4月時点での登録メンバは30名で、現在も一緒に執筆をできる有志を募集中。