PowerPoint[VBA]ユーザーフォーム上のコンボボックスでオートコンプリート機能を実装する方法Office関連2019.09.4[VBA]ユーザーフォーム上のコンボボックスでオートコンプリート機能を実装する方法MSDNフォーラムに「ユーザーフォーム上のコンボボックスで、任意の文字列でアイテムをフィルタリングしたい」といった質問がありました。Userformhttps://social.msdn.microsoft.com/Forums/en-us/isvvba/thread/52a0fed9-8d34-48f2-b107-80be0e054d51早い話がオートコンプリート(サジェスト)機能ですね!コンボボックスにはMatchEntryプロパティも用意されていますが、今回の用途では物足りません。そこで、KeyUpイベントを利用した代替手段を考えてみることにしました。KeyUpイベントによるオートコンプリート機能の実装さっそくコードです。ちなみに、下記コードはExcelに限らずWordやPowerPointでもそのまま使用することができます。Sub仕組みは下記のように非常に単純です。ユーザーフォームが開いたとき(UserForm_Initialize)に、対象となるコンボボックスのリストを保存用のコンボボックスにコピーする。コンボボックスでキーが押されたとき(KeyUpイベント)に、入力された文字列を元にフィルタリングして、保存用のコンボボックスからリストを作成する。唯一工夫した点は、DropDownメソッドで開いたリストを閉じる処理でしょうか。下記コードの部分で実装していますが、これがなかなか上手くいきませんでした。If最初はユーザーフォームにキーコードを送信して無理やり閉じたりしていましたが、最終的には上記の形に落ち着きました。(もしかしたら、OSやOfficeのバージョンによっては上手く動作しないかもしれません...。)コンボボックスのオートコンプリート機能、使ってみると項目を選択しやすくなり、中々便利なものでした。クラス化して使いまわしできるようにすれば、もっと使い勝手が良くなるかもしれませんが、私は普段ユーザーフォーム自体使う機会が少ないので、今回はここまでにしておきます。0[PowerPoint]図やスライドをSVGとして保存する機能が追加されました。2013]サインインを無効にする。(0)トラックバックは利用できません。この記事へのコメントはありません。返信をキャンセルする。スクリプト、リボンのカスタマイズに関する話題を中心に情報発信しています。