コンボボックスの使い方 [ExcelのVBA]
コンボボックス
「コンボボックス」はコントロールの右横にあるドロップボタンを押してリストの中から1つの項目を選択するコントロールです。
正式名称 | ComboBox |
---|
コード例 - 基本操作
次のコードはコンボボックスの形式を「リスト形式」にして「項目を追加」しています。そして、コンボボックスの項目が選択された場合にその内容をイミディエイトへ出力します。
Private Sub CommandButton1_Click() ' コンボボックスのスタイルをリスト形式にする ' ※リスト形式だとコンボの文字列をユーザーは編集不可となる ComboBox1.Style = fmStyleDropDownList ' コンボボックスにアイテムを追加する ComboBox1.AddItem ("りんご") ComboBox1.AddItem ("みかん") ComboBox1.AddItem ("メロン") ' エクセルのシートの値をコンボボックスのリストへ ' 代入するにはRowSourceプロパティを使用します。 ' (例) ComboBox1.RowSource = "Sheet1!A1:A5" End Sub Private Sub ComboBox1_Change() Dim Str As String If ComboBox1.ListIndex <> -1 Then ' 現在選択されている項目名を取得する Str = ComboBox1.List(ComboBox1.ListIndex) ' イミディエイトへ出力(ListIndexは選択されている番号) Debug.Print "ListIndex:" & ComboBox1.ListIndex & " " & Str End If End Sub
[結果]
コード例 - 複数列の作成
コンボボックスで複数のカラム(列)を作成します。選択項目の取得には「ListIndex」ではなく「Text」と「Value」プロパティを使用しています。
Private Sub CommandButton1_Click() ' コンボボックス用のリスト Dim cmb_list(2, 1) As Variant ' コンボボックス用のリストデータの生成 cmb_list(0, 0) = "001" cmb_list(1, 0) = "002" cmb_list(2, 0) = "003" cmb_list(0, 1) = "りんご" cmb_list(1, 1) = "みかん" cmb_list(2, 1) = "メロン" With ComboBox1 ' コンボボックスのスタイルをリスト形式にする ' ※リスト形式だとコンボの文字列をユーザーは編集不可となる .Style = fmStyleDropDownList ' リストの幅を設定する(ドロップダウンリストの幅) .ListWidth = 200 ' カラム(列)のヘッダを表示する .ColumnHeads = True ' 表示するカラム数を設定する .ColumnCount = 2 ' カラムの横幅 .ColumnWidths = 30 ' 値を表示するカラム番号 ' ※1列目は「1」、2列目は「2」となる .TextColumn = 1 ' 値を取得するカラム番号 ' ※1列目は「1」、2列目は「2」となる .BoundColumn = 2 ' コンボボックスのリストへ代入 .list = cmb_list End With End Sub Private Sub ComboBox1_Change() If ComboBox1.ListIndex <> -1 Then ' イミディエイトへ出力 ' ※TextプロパティはTextColumnプロパティに依存します。 ' ※ValueプロパティはBoundColumnプロパティに依存します。 Debug.Print "Text = " & ComboBox1.Text & " Value = " & ComboBox1.Value End If End Sub
[結果]
※コンボボックスで複数の列を扱うのは「やや難しい」ので、覚えるのは後回しでも大丈夫です。
プロパティの一覧
プロパティ | 内容 |
---|---|
AutoSize | コントロールのサイズを自動的に文字列に合わせる |
AutoTab | コントロールへの入力が最大文字数になった場合に他コントロールへフォーカスを移動する |
AutoWordSelect | 文字の選択範囲の自動設定 |
BackColor | コントロールの背景色 |
BackStyle | コントロールの背景スタイル |
BorderColor | コントロールの枠線色 |
BorderStyle | コントロールの枠スタイル |
BoundColumn | 値を取得するカラム(列)の設定。1列目は「1」、2列目は「2」となる。 ※コンボ/リストボックスで複数の列を使用する場合のみ |
ColumnCount | カラム数(列数)の設定 ※コンボ/リストボックスで複数の列を使用する場合のみ |
ColumnHeads | カラムのヘッダの表示設定 ※コンボ/リストボックスで複数の列を使用する場合のみ |
ColumnWidths | カラムの横幅 ※コンボ/リストボックスで複数の列を使用する場合のみ |
ControlSource | 「Sheet1!A1」などのようにシートの値を設定する。 |
ControlTipText | コントロールのチップテキスト(ヒント)の設定 |
DragBehavior | ドラッグアンドドロップの設定 |
DropButtonStyle | ドロップボタンのスタイルの設定 |
Enabled | コントロールの使用設定(True/False) |
EnterFieldBehavior | フォーカス時に文字列を選択するかの設定 |
Font | 文字列のフォントの設定 |
ForeColor | 文字列の表示色の設定 |
Height | コントロールの縦幅 |
HelpContextID | ヘルプのコンテキストIDの設定 |
HideSelection | フォーカスを失った時の強調表示の設定 |
IMEMode | IME(文字入力)の設定 |
Left | コントロールの表示位置(画面の左幅) |
ListRows | ドロップダウンリストの表示行数 |
ListStyle | ドロップダウンリストのスタイル |
ListWidth | ドロップダウンリストの横幅 |
Locked | コントロールの編集設定(オン/オフ) |
MatchEntry | リストの項目を検索する際の規則を設定 |
MatchRequired | リストの項目にある値のみ入力可能とする |
MaxLength | 文字列の最大入力数。0は入力制限なし。 |
MouseIcon | マウスアイコンの設定 |
MousePointer | マウスポインターの設定 |
RowSource | 「Sheet1!A1:A3」などのように入力するとエクセルからデータを取得してリストへ設定できます。 |
SelectionMargin | 文字列の左側余白をクリックする事で選択可能にする |
ShowDropButtonWhen | ドロップボタンの表示タイミングの設定 |
SpecialEffect | コントロールの表示スタイルの設定 |
Style | スタイルを設定 |
TabIndex | タブインデックス。タブキーを押した時の順番を設定する |
TabStop | タブキーを押した時に止まるかの設定 |
Tag | 任意の文字列を設定(String型) |
Text | コントロールの文字列を設定する |
TextAlign | 文字列の表示形式を設定する |
TextColumn | 値を表示するカラム(列)の設定。1列目は「1」、2列目は「2」となる。 ※コンボ/リストボックスで複数の列を使用する場合のみ |
Top | コントロールの表示位置(画面の上幅) |
TopIndex | リストの先頭に表示される項目を設定 |
Value | コントロールの値の設定 |
Visible | コントロールの表示設定(True/False) |
Width | コントロールの横幅 |
※プロパティの基本的な使い方は「プロパティの使い方」をご覧ください。
イベントの一覧
イベント | 内容 |
---|---|
AfterUpdate | (コード上で)コントロールのデータを変更した後に発生する。 |
BeforeDragOver | コントロールへファイルをドラッグ中。 |
BeforeDropOrPaste | コントロールへファイルをドロップした。 |
BeforeUpdate | (コード上で)コントロールのデータを変更する前に発生する。 |
Change | コントロールの値が変更された。 |
Click | コントロールをクリックした。 |
DblClick | コントロールをダブルクリックした。 |
DropButtonClick | ドロップボタンが押された。 |
Enter | コントロールにフォーカスが移る時。 |
Error | コントロールでエラーが発生した。 |
Exit | コントロールのフォーカスが別のコントロールに移る時。 |
KeyDown | コントロール上でなんらかのキーを押した。 |
KeyPress | コントロール上で英数字記号キーを押した。 |
KeyUp | コントロール上でなんらかのキーを離した。 |
MouseDown | コントロール上でマウスのボタンを押した。 |
MouseMove | コントロール上でマウスが移動した。 |
MouseUp | コントロール上でマウスのボタンを離した。 |
※イベントの基本的な使い方は「イベントの使い方」をご覧ください。
Visual Basicのコントロール
共通操作 プロパティの使い方 イベントの使い方 |
ラベル | |
テキストボックス | |
コンボボックス | |
リストボックス | |
チェックボックス | |
オプションボタン | |
トグルボタン | |
フレーム | |
コマンドボタン | |
タブストリップ | |
マルチページ | |
スクロールバー | |
スピンボタン | |
イメージ | |
ユーザーフォーム |
エクセル講座のクイックリンク
スポンサーリンク
関連記事
公開日:2015年06月29日 最終更新日:2015年07月06日
記事NO:01083