Excelマクロ・VBA達人養成塾 小川です。
エクセルVBAを離れて、今日は、PHPとVBの比較の話。
複数の条件のいずれかに一致するものを選ぶ、というケース。
以下のプログラムは、セルB2に商品名が記載されていて、その商品名に応じて処理を分岐します。
VBでは、「複数の条件のいずれかに一致する場合は○○」といった条件分岐をするときは、以下のように書きます。
[1]では、商品名が「Hard X」か「ハードXR」だった場合、ハードコンタクトレンズ用の処理をします。
1 2 3 4 5 6 7 8 9 10 11 12 13 14 | 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 |
PHPでは、Select Case文に対応するものとしてSwith文があるのですが、「複数条件のいずれかに該当するときは○○」というときは、以下のように書きます。
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 | $v= 'SOFT VIEW'; switch($v) { case 'Hard X': case 'ハードXR': $st= "ハードコンタクトレンズ用の処理をします" ; break; case 'SOFT VIEW': case 'ソフトO2': case 'ボシュロムソフト': case 'メニソフト': $st= "ソフトコンタクトレンズ用の処理をします" ; break; case 'アイキュア': case 'ピュアクリーン': $st= "ケア用品用の処理をします" ; break; default: $st = "該当なし" ; break; } echo $st; |
個人的には、VBのスタイルのほうが、行数も少ないし文字数も少ないので好きです。
(PHPでも、そういう書き方できるのかな。どなたか、ご存じでしたら教えてください)