HOME > エクセルVBA >コンボボックス

コンボボックスとは

 コンボボックスは文字列を入力することもできるし、項目の一覧を表示させることもできます。テキストボックスとリストボックスの両方の機能を併せ持っているので大変使い勝手の良いインターフェースです。

スタイルの設定

Styleプロパティ

 コンボボックスへの入力方法を設定することができます。

定数 説明
fmStyleDropDownCombo 0 文字列の入力、リストからの入力、両方可能です。
fmStyleDropDownZList 2 リストから選択することができます。文字列は入力できません。

ShowDropButtonWhenプロパティ

 リストの為のボタン表示方法を設定することができます。

定数 説明
fmShowDropButtonWhenNever 0 ボタンを表示しません。
fmShowDropButtonWhenForcus 1 フォーカスがある時だけボタンを表示します。
fmShowDropButtonWhenAlways 2 ボタンを常に表示します。

コンボボックス

 コンボボックスを使用した状態です。右側の「▼」をクリックすると登録していたデータリストを表示することができます。

リストの表示

 コンボボックスに表示させたいリストはRowSourceプロパティにリスト範囲を入力します。通常は「A1:A11」のように、セル範囲を指定します。

 セル範囲でリストを指定する方法以外にも名前の定義を利用する方法があります。RowSourceプロパティに名前を入力することにより、リストを表示することができます。

コンボボックスのプロパティ

コンボボックスのプロパティ

コンボボックスの使用例

 コンボボックスを二つ利用してデータの選択方法を説明します。INDIRECT関数の時に説明した方法のVBA版です。

名前の定義で登録する

 まず、名前の定義を利用して、部署、そして各部署ごとの人員を登録していきます。

コンボボックスと名前の定義

コンボボックスの作成

 ユーザーフォームを作成したら、部署用のコンボボックスと担当者用のコンボボックスを作成します。

 部署用のコンボボックスのRowSourceプロパティに、「=部署」と入力します。するとコンボボックスに部署のリストが表示されます。

 コンボボックスのイベント、Chengeのところに次のプログラムを入力します。

Option Explicit
Dim my_a As Variant


Private Sub ComboBox1_Change()


ComboBox2.RowSource = ComboBox1.Value


End Sub

コンボボックスのプロパティ

実行してみる

 ユーザーフォームを実行してみましょう。最初は部署、担当ともに空白ですが、部署欄に部署を入れて、担当のところをクリックしてみましょう。各部署に登録していた担当者のみが表示されます。

 このテクニックを利用することで多くのメンバーや商品を分類してから選択することができるので、入力時の負担が軽減します。

コンボボックスの使用例

リストボックス  エクセル職人  

▲TOPへ移動