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

VBA Choose 関数

はじめに

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

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

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

  • 目次
    • 構文
    • 解説
    • 使用例

構文

Choose(インデックス, 値1)
Choose(インデックス, 値1, 値2…)
インデックスに対応するを取得します。

引数「インデックス」取得する引数「値」の番号を指定します。
最初の値は 1 です。
引数「値」文字列、数値、日付など何でも指定できます。
戻り値の型引数「値」の型

解説

引数「インデックス」が1なら 1 つ目の引数「値」を、2なら 2 つ目の引数「値」を返します。

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

引数「値」に関数を入力すると、取得しないときでも必ずその関数が実行されます。

配列を作成したり 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(3, "Tips", "found", 3)
Debug.Print(v) ' 3

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

If 文や Select 文などで条件分岐しなくてよくなります。


Sub 実行()
    Dim s As String
    
    s = GetWeek(1)
    Debug.Print(s) ' 日曜日
    
    s = GetWeek(2)
    Debug.Print(s) ' 月曜日
End Sub

' index に対応した曜日を取得する
Function GetWeek(ByVal index As Integer) As String
    GetWeek = Choose(index, "日曜日", "月曜日", "火曜日", "水曜日", "木曜日", "金曜日", "土曜日")
End Function

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


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

Function 関数(ByVal i As Integer) As Integer
    Debug.Print(i) ' Choose を呼び出すと必ずこの関数が実行される
End Function
  • 目次
    • 構文
    • 解説
    • 使用例