Ans = Switch(Way = “東”, “East”, Way = “西”, “West”) MsgBox Ans※Wayが【東】ならば、【East】をメッセージボックスで表示します。 ※Wayが【西】ならば、【West】をメッセージボックスで表示します。 ※Wayが【東】・【西】以外だと【Null】を返します。(エラー発生) 【注意点】
設定した複数条件でTrueとなる条件が存在しない場合は、Nullを返します。
入力した値(条件)に対して該当する値を返します。
●プログラム説明 サンプル① 【Switch関数】
下記のサンプルプログラムは、入力した値に対して該当する値を返すサンプルプログラムです。
'
'******** AKIRA55.COM ******* https://akira55.com/Switch/
'
Sub Switch01() '入力した文字列に対して該当する文字列を返します。
Dim Ans, Way As String
Way = InputBox("東・西・南・北のいずれかを入力して下さい") '東西南北をいずれかを入力します。
Ans = Switch(Way = "東", "East", Way = "西", "West", Way = "南", "South", Way = "北", "Nouth")
On Error Resume Next '【東・西・南・北】以外の文字又は、空白を入力した時のエラー回避
MsgBox Ans '入力結果を表示します。
End Sub
'
'
'******** AKIRA55.COM ******* https://akira55.com/Switch/
'
Sub Switch02() 'セルに登録されているデータを元に、Switch関数を使い該当する数値を返します。
Dim Yaku As String
Dim I, lRow, Yen As Long
lRow = Cells(Rows.Count, "A").End(xlUp).Row 'A列の最終行を取得します。
For I = 2 To lRow
Yen = 0 '代入される「Yen」を0にする(クリアー)
Yaku = Cells(I, "D") 'D列の役職名を取得します。
Yen = Switch(Yaku = "部長", 550000, Yaku = "次長", 450000, Yaku = "課長", 400000, _
Yaku = "係長", 350000, Yaku = "主任", 300000, Yaku = "事務員", 250000)
'役職名に応じて該当する基本給をYenに代入します。
On Error Resume Next '登録外の役職名を取り込んだ時のエラー回避
Cells(I, "E") = Yen '役職名の基本給をE列に代入します。
Next I
End Sub
'