選択肢リストを配置する コンボボックス(ComboBox)[とりあえず使えるエクセルユーザーフォーム超入門]
Lesson4 使えるようになっておきたい基本機能
コンボボックスの配置
コンボボックス(ComboBox)を使うことで、あらかじめ設定した選択肢を選ぶことが可能となります。選択肢を設定することで、ユーザーの入力作業が簡単になることはもちろん、人によって異なる表現のバラつきをなくすことができ、その後の統計処理などに威力を発揮します。
ツールボックスで「コンボボックス」を選択し、フォーム上の始点でクリックし、そのまま終点までドラッグすることで、コンボボックスの枠組みを作成します。
スポンサーリンク
選択肢リストの反映
次に選択リストを設定します。「3-1.ユーザーフォームの初期化(Initialize)」で紹介した方法をベースに設定することができます。コンボボックスの具体的な方法は次の通り。通常選択肢は複数あるので、With文の「.AddItem "(名称)"」で設定します。
Private Sub UserForm_Initialize()
With ComboBox1 '(オブジェクトの指定)
.AddItem "焼き飯"
.AddItem "焼きそば"
.AddItem "お好み焼き"
.AddItem "たこ焼き"
End With
End Sub
そうそう。これこれ、これがやりたかった!
もう一つの方法があります。それはExcelのSheetに記載の列情報を読み込むやり方です。そのときはWith文の「.RowSource = "(指定の列)"」で設定します。
Private Sub UserForm_Initialize()
With ComboBox1 '(オブジェクトの指定)
.RowSource = "Sheet1!A1:A6"
End With
End Sub
これでコンボボックスでの選択が完了ですが、その選択した値を確認するためにはもう一つ仕込みが必要です。
コンボボックスの選択情報の取得
ユーザーフォーム上で選択が完了すると、ComboBox1.Value にその選択肢が格納されます。確認のために、Msgbox構文で表示させるコードは下記の通り。
Private Sub ComboBox1_Click() ' ComboBox1選択後に始まる処理
MsgBox ComboBox1.Value ' CheckBox1.Value の値を表示
End ' 処理終了
End Sub
コンボボックスの便利設定
自由入力をさせない(入力規制)
初期の設定だとコンボボックスに直接入力することで選択肢以外を入力することができますが、設定を変えることで選択肢以外は選べないようにすることができます。With文に「.Style = fmStyleDropDownList」を追加します。
Private Sub UserForm_Initialize()
With ComboBox1 ‘(オブジェクトの指定)
.RowSource = "Sheet1!A1:A6"
.Style = fmStyleDropDownList ‘ 選択肢以外は入力規制
End With
End Sub
フォームの表示と同時に初期値を表示
通常、フォームの初期値は空白でどれも選択されていませんが、with文の「.Value」を使用することで、フォームの表示と同時に初期値が入力されている状態にできます。Range文を使ってセルを指定してもよし、”(ダブルクオーテーション)で挟んだ文字列を入れてもよしです。「.Style」で選択肢の制限をした場合、初期値に選択肢外のものが入力できません(空白のままとなります)。
Private Sub UserForm_Initialize()
With ComboBox1 ‘(オブジェクトの指定)
.Value = Range("A1") ‘ .Value =”やきめし” なども可能
.RowSource = "Sheet1!A1:A6"
.Style = fmStyleDropDownList ‘ 選択肢以外は入力規制
End With
End Sub
よし、またできることがひとつ増えた!
1 2 3 4 5 6 7 8 9 10 11 12 13 14
スポンサーリンク