【VBA】自作関数の引数で候補表示(インテリセンス)をさせる方法

【VBA】自作関数の引数で候補表示(インテリセンス)をさせる方法

今回は上の画像のように、自作関数の引数で入力候補を表示させる方法を紹介します。

候補が表示されるので、何を入力すれば良いのか迷わずスパッと選べるようになります。

入力候補が限定される関数があれば使用してみてください。

自作関数の引数で候補表示(インテリセンス)をさせる方法

引数を候補表示させるためにはEnum(列挙型)を使います。

Enumで引数の候補を用意しておいて、その中から選択することになります。

Enum EnumDay
    Mon = 1
    Tue
    Wed
    Thu
    Fri
    Sat
    Sun
End Enum

Private Sub ShowDay(todayDay As EnumDay)
    
    Select Case todayDay
        Case EnumDay.Mon
            MsgBox "今日は月曜日です"
        Case EnumDay.Tue
            MsgBox "今日は火曜日です"
        Case EnumDay.Wed
            MsgBox "今日は水曜日です"
        Case EnumDay.Thu
            MsgBox "今日は木曜日です"
        Case EnumDay.Fri
            MsgBox "今日は金曜日です"
        Case EnumDay.Sat
            MsgBox "今日は土曜日です"
        Case EnumDay.Sun
            MsgBox "今日は日曜日です"
    End Select
    
End Sub

Sub Main()
    
    ShowDay Mon
    
End Sub

サンプルコードではEnumDayというEnum(列挙型)とShowDayという自作関数を用意しています。

この状態でShowDayと自作関数名を書くと引数が候補表示されるので、試してみてください。

Private Sub ShowDay(todayDay As EnumDay)

ポイントはこの部分で、自作関数の引数をEnumDay型としています。

こうすることで引数が列挙型となり、EnumDayで定義しているMon~Sunが候補となります。

なお、この方法を取るときはサンプルコードのようにSelect Caseによって分岐処理をするのがおすすめです。

VBAが難しいと感じたら
プロにお任せして代わりに作ってもらってはいかがでしょう?
VBAの作成依頼はこちらから

《VBA中級者向けの本》
VBA上級者を目指したい人にはパーフェクトExcel VBA一択です。

created by Rinker
技術評論社
¥3,608 (2022/12/08 14:44:42時点 Amazon調べ-詳細)

他の「VBA」の記事はこちらからどうぞ

VBA

Posted by やろまい