透2017/11/202019/4/22コンボボックスって使っていますか?コンボボックスとは、VBAのユーザーフォームで使えるパーツの一つで、いくつか登録したテキストの中から選択する場合に使用します。この記事では、コンボボックスについてコンボボックスとはコンボボックスの呼び出し方コンボボックスのリストの初期化コンボボックスの値の取得コンボボックスのメソッドとプロパティなど基本的な内容から、応用的な内容についても解説していきます。まとめコンボボックスとは?コンボボックスとは、VBAのユーザーフォームで使えるパーツの一つで、いくつか登録したテキストの中から選択する場合に使用します。コンボボックスがテキストボックスとリストボックスから構成されています。テキストボックスに入力したテキストをリストボックスに追加したり、リストボックスから選択したテキストをテキストボックスに表示したりすることができます。コンボボックスの呼び出し方コンボボックスは「ツールボックス」から選択して、フォームにドラッグ&ドロップします。ユーザーフォームの呼び出し方、使い方などは、こちらで詳しく解説していますので、ぜひ参考にしてください。2019年4月22日コンボボックスのリストの初期化コンボボックスにリストを登録する方法についてみていきましょう。AddItemメソッドの使い方コンボボックスのリストにテキストを追加するには、AddItemメソッドを使います。AddItemメソッドは以下のように記述します。]」内は省略することができます。引数Itemは、追加するテキストを指定します。引数Indexは、追加する項目の位置を指定します。省略された場合は、リストの末尾に追加されます。「コンボボックス」のテキストボックスから入力して、テキストを登録することができます。「コマンドボタン」を押すとリストボックスに登録されるようにします。この場合の処理の例は以下のとおりです。SubSubプロシージャ「CommandButton1_Click()」は、「コマンドボタン」をダブルクリックすると自動で生成されます。テキストを登録するために、AddItemメソッドを使用しています。AddItemメソッドの引数には、ComboBox1のTextプロパティで取得した値を指定しています。起動時に初期化する方法また、あらかじめフォームが起動する際に、テキストを登録しておくこともできます。以下のように記述します。SubSubプロシージャ「UserForm_Initialize()」でフォーム起動時の処理を定義します。「コンボボックス」のリストの中から何が選ばれたか取得する方法について、みていきましょう。「コンボボックス」のリストの中から何が選ばれたか取得するには、ListIndexプロパティを使います。ListIndexプロパティは整数値を取得します。リストの最初の項目が選択されているときの値は0で、2番目の項目が選択されているときはの値は1になります。サンプルコードで確認しましょう。SubSubプロシージャ「ComboBox1_Change()」で値を取得する処理を定義します。先ほどは、ListIndexプロパティを使って値を取得する方法についてみてきました。今度は値ではなく、リストの項目テキストを取得する方法についてみていきましょう。リストの項目テキストを取得するには、Listメソッドを使います。List(Index)引数Indexには、項目のインデックス番号を指定します。この引数は省略可能で、省略するとリスト全体の項目が文字列配列として返されます。サンプルコードで確認しましょう。Subコンボボックスのメソッドとプロパティコンボボックスのメソッドとプロパティについてみていきましょう。メソッド一覧メソッドについては以下のとおりです。リストに項目を追加します。引数Itemで追加する文字列を指定します。省略すると空白行が追加されます。引数Indexで追加する位置を指定します。省略すると末尾に追加されます。リストに追加された全ての項目を削除します。リストの項目を1つ削除します。引数Indexで項目の位置を指定します。主なプロパティについては以下のとおりです。ドロップボタンのスタイルを指定fmDropButtonStyleArrow(1)fmDropButtonStyleEllipsis(2)fmDropButtonStyleReduce(3)Clearメソッドでリストを削除それではClearメソッドを使って、リストを全て削除する方法についてみていきましょう。Sub「コマンドボタン」を押すと「コンボボックス」のリストが全て削除されるように記述しています。まとめここでは、コンボボックスの使い方について説明しました。Excelのシート入力だけでは入力フォームとして不足と感じる場合は、ユーザーフォームで使いやすい入力フォームを作れるようになると作業時間や入力ミスの削減になります。コンボボックスも使いこなすことができるように、この記事を何度も参考にして下さいね!TweetPocket無料でSEからWebエンジニアへ転職しませんか?侍エンジニア塾では、完全未経験の方から現在SEだけどプログラミングはやっていないという経験者まで、幅広い方々の人生を好転させるプログラミング指導を行ってきました。SEの方とお話していくなかで、システムエンジニアという職業だけどコードが書けない事務作業が多くスキルがないため将来が不安スクールに通うと完全未経験者と同じスタートになるからレベルが合わないという、すでに知識があるSEならではのお悩みがあることに気づきました。弊社では、マンツーマンでレッスンを行いますので、現在お持ちの知識レベルからカリキュラムを作成いたします。こちらの転職コースは無料で受講を始められて転職成功でそのまま卒業できるというとてもお得なコースとなっています。知識のあるSEといっても転職は年齢が若いほど受かりやすいため、まずは無料体験レッスンで今の現状や理想の働き方について一緒に考えていきましょう。熊本在住のフリープログラマ兼ライターです。C/C++/C#、Java、Python、HTML/CSS、PHPを使ってプログラミングをしています。専門は画像処理で最近は機械学習、ディープラーニングにはまっています。幅広くやってきた経験を活かしてポイントをわかりやすくお伝えしようと思います。お問合せはこちらでも受け付けています。