Excelマクロ・VBA達人養成塾 小川です。



エクセルVBAを離れて、今日は、PHPとVBの比較の話。
複数の条件のいずれかに一致するものを選ぶ、というケース。
以下のプログラムは、セルB2に商品名が記載されていて、その商品名に応じて処理を分岐します。
VBでは、「複数の条件のいずれかに一致する場合は○○」といった条件分岐をするときは、以下のように書きます。
[1]では、商品名が「Hard X」か「ハードXR」だった場合、ハードコンタクトレンズ用の処理をします。
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文があるのですが、「複数条件のいずれかに該当するときは○○」というときは、以下のように書きます。
$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でも、そういう書き方できるのかな。どなたか、ご存じでしたら教えてください)