Excelマクロ・VBA達人養成塾 小川です。
昨日のお話の続きです。
昨日のブログ: 「VBのSelect CaseとPHPのSwitchでの書き方の違い」
Visual Basic で書かれた以下のプログラムがある。
Sub SelectCaseTest() Dim st As String Select Case Range("B2").Value Case Is = "Hard X", "ハードXR" '[1] st = "ハードコンタクトレンズ用の処理をします" Case Is = "SOFT VIEW", "ソフトO2", "ボシュロムソフト", "メニソフト" '[2] st = "ソフトコンタクトレンズ用の処理をします" Case Is = "アイキュア", "ピュアクリーン" '[3] st = "ケア用品用の処理をします" Case Else st = "該当なし" End Select Range("C2").Value = st End Sub
これを元に、以下の表を作れ。
(ただし、各項目とアクションの対応リストは、この順序でならんでいなくてもよい。
また、商品名の文字列には、「”」や「,」は含まないものとする。)
|A列 |B列 |C列 |
-----------------------------------------------------------------------
1 行目 |id |item |action |
-----------------------------------------------------------------------
2 行目 |1 |Hard X |ハードコンタクトレンズ用の処理をします|
-----------------------------------------------------------------------
3 行目 |2 |ハードXR |ハードコンタクトレンズ用の処理をします|
-----------------------------------------------------------------------
4 行目 |3 |SOFT VIEW |ソフトコンタクトレンズ用の処理をします|
-----------------------------------------------------------------------
5 行目 |4 |ソフトO2 |ソフトコンタクトレンズ用の処理をします|
-----------------------------------------------------------------------
6 行目 |5 |ボシュロムソフト|ソフトコンタクトレンズ用の処理をします|
-----------------------------------------------------------------------
7 行目 |6 |メニソフト |ソフトコンタクトレンズ用の処理をします|
-----------------------------------------------------------------------
8 行目 |7 |アイキュア |ケア用品用の処理をします |
-----------------------------------------------------------------------
9 行目 |8 |ピュアクリーン |ケア用品用の処理をします |
-----------------------------------------------------------------------
次に、上にある表を元にして、「Sub SelectCaseTest」と同じことを実現するマクロを作れ。
(ただし、条件分岐には、If文を使い、Select Case文は使わない)
僕も、いまやってみました。
ちょっと時間かかりました。所要時間、8分でした。
8月31日までにトライしてご報告いただいた方には、僕かトライした様子をそのままキャプチャーした動画をさしあげます。