サイトについて      連絡先   検索

VBA Choose 関数

はじめに

Excel VBA の Choose 関数を紹介します。

Choose 関数は、リストの中から選択した値を返します。

リストの中から取得したいものを選択したいときに使用します。

構文

Choose(インデックス, 値1, 値2, 値3…)

名前 説明
引数「インデックス」リストの中から取得する値のインデックスを指定します。
最初の値は 1 です。
引数「値」文字列、数値、日付など何でも指定できます。
値は , で区切って複数指定できます。
戻り値値の型

解説

インデックスが値の数より大きいときや 1 未満を指定したときは Null が返ります。

例えば曜日で 1 なら日曜日、2 なら月曜日を取得するときに、わざわざ配列を用意したり If 文や Select 文で条件分岐しなくてよくなります。

リストの中に関数を指定していると、インデックスで選択されなくても、必ずすべての関数が実行されます。

使用例


Dim v As Variant
v = Choose(1, "Tips", "found", 3)
Debug.Print (v) ' Tips

v = Choose(2, "Tips", "found", 3)
Debug.Print (v) ' found

v = Choose(4, "Tips", "found", 3)
Debug.Print (v) ' Null

配列は IF 文などで条件分岐しなくてよくなります。


' index で指定した曜日を取得します。
Function GetWeek(ByVal index As Integer) As String
    GetWeek = Choose(index, "日曜日", "月曜日", "火曜日", "水曜日", "木曜日", "金曜日", "土曜日")
End Function

Dim s As String
s = GetWeek(2)
Debug.Print (s) ' 月曜日

リストの中の関数はすべて実行されます。


Function 関数(ByVal i As Integer) As Integer
    Debug.Print (i) ' Choose を呼び出すとこの関数が 2 回呼ばれます。
End Function

Dim v As Variant
v = Choose(1, "Tips", 関数(2), 関数(3))
Debug.Print (v) ' 2 3 Tips

関連ページ