教えて!ExcelVBA!

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

ExcelVBAでフォーム内のコンボボックスでオートコンプリート機能を利用する方法

構文

構文は以下の通りです。

コンボボックス名.MatchEntry = 検索条件

解説

コンボボックス名は、コンボボックスの名前です。MatchEntryは、コンボボックスのオートコンプリート機能を設定します。検索条件は、コンボボックスに入力された文字列でアイテムを検索します。

【検索条件】

定数 内容
fmMatchEntryFirstLetter 0 コンボボックスに入力した最初の文字に一致するアイテムを検索し、そのアイテムを選択します。この設定では、最初の文字だけが対象となるため、入力が進んでも最初に一致したアイテムが表示されます。
fmMatchEntryComplete 1 コンボボックスに入力した文字列全体に一致する最初のアイテムを検索し、そのアイテムを選択します。例えば、「Ap」と入力すると「Apple」が自動的に表示されます。この設定はオートコンプリート機能をフルに活用できます。
fmMatchEntryNone 2 オートコンプリート機能を無効にします。入力した文字列に一致するアイテムは検索されず、手動でリストから選択する必要があります。

プログラミング例

具体的なプログラミング例を紹介します。

Sub フォーム初期化()
    ' コンボボックスにアイテムを追加
    コンボボックス1.AddItem "りんご"
    コンボボックス1.AddItem "みかん"
    コンボボックス1.AddItem "ぶどう"
    ' オートコンプリート機能を有効にする
    コンボボックス1.MatchEntry = fmMatchEntryComplete
End Sub

上記のプログラムでは、フォームの初期化時にコンボボックス(コンボボックス1)にいくつかの果物の名前を追加しています。また、ユーザーがコンボボックスに文字を入力する際に、その文字列と一致するアイテムが自動的に補完されるようにしています。例えば、ユーザーが「り」と入力すると「りんご」が自動的に表示されます。

まとめ

MatchEntryを使用することで、コンボボックスにオートコンプリート機能を追加できます。