教えて!ExcelVBA!

ExcelVBAの基礎知識・書き方について紹介します。

【ExcelVBA フォーム&コントロール】コンボボックスでオートコンプリート機能を利用する方法を教えて!

構文

構文は以下の通りです。

コンボボックス名.MatchEntry = 定数

解説

MatchEntryプロパティを使用すると、コンボボックスにオートコンプリート機能を設定できます。定数には、以下のいずれかを設定する事ができます。

定数 内容
fmMatchEntryFirstLetter 0 入力した文字と1文字目が一致する候補を検索します。
fmMatchEntryComplete 1 入力した文字と全てが一致する項目を検索します。(既定値)
fmMatchEntryNone 2 マッチングを行いません。

使い方

具体的な使い方を紹介します。

定数1:fmMatchEntryFirstLetter

ユーザーが入力を始めると、最初の文字から始まるリスト内の項目が自動的に選択されます。

ComboBox1.MatchEntry = fmMatchEntryFirstLetter

定数2:fmMatchEntryComplete

ユーザーが入力した値と一致する最初のリスト内の項目が自動的に選択されます。入力された値がリストに存在しない場合、エラーになります。

ComboBox1.MatchEntry = fmMatchEntryComplete

定数3:fmMatchEntryNone

ユーザーが手動で入力する必要があり、入力された値がリスト内に存在しなくてもエラーになりません。

ComboBox1.MatchEntry = fmMatchEntryNone

これらの設定値を利用することで、ユーザーがコンボボックスに値を入力する際の挙動を柔軟に制御することができます。

プログラミング例

以下に、プログラミング例を紹介します。

Private Sub UserForm_Initialize()
    ' フォームが初期化される時に呼び出されるイベントハンドラ
    ' コンボボックスに項目を追加
    With ComboBox1
        .AddItem "りんご"
        .AddItem "バナナ"
        .AddItem "ぶどう"
        .AddItem "いちご"
        ' 他にも必要な項目を追加
    End With
    ' コンボボックスのMatchEntryプロパティを設定
    ComboBox1.MatchEntry = fmMatchEntryFirstLetter
End Sub

この例では、UserFormが初期化される際にコンボボックスに静的に項目を追加しています。これにより、フォームを起動した瞬間に利用可能な選択肢が表示されます。

まとめ

フォーム内のコンボボックスのMatchEntryプロパティを活用することで、ユーザビリティ向上やデータ入力の効率化が可能です。是非活用してください。