このサイトの記事内では「アフィリエイト広告」などの広告を掲載している場合があります。
消費者庁が問題としている「誇大な宣伝や表現」とならないよう配慮しコンテンツを制作しておりますのでご安心ください。
問題のある表現が見つかりましたらお問い合わせよりご一報いただけますと幸いです。

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

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

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

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

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

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

Posted by やろまい