アクセス上位ページ
 
最近の更新内容
(2)-e.コンボボックス ⇐ [PREV]
[NEXT] ⇒ (2)-g.チェックボックス

Excel VBA ≫ 5.ユーザーフォーム - 各種コントロール解説(2)-f.リストボックス

リストボックスのプロパティ

このページではリストボックスの主なプロパティについて解説します。

リストボックスは複数の項目の中から1つ以上の項目を選択してもらうためのコントロールで、 比較的使用頻度の高いコントロールです。 リスト項目の複数選択については MultiSelect プロパティで設定可能ですので、適切に設定するようにしましょう。 複数選択を許可した場合は、常に複数選択を意識した処理が必要になります。 リストボックスへの項目追加、削除はコンボボックスと同じですので、コンボボックスのページを参照してください。



このページで説明するリストボックスのプロパティは以下のとおりです。 コントロールオブジェクトが異なるだけで前のページで説明した内容と同じプロパティについては説明を割愛させていただきます。 かわりにリンクをまとめてありますのでリンク先をご覧になってください。



複数項目の選択

リストボックスはデフォルトの設定ではリスト内の1つの項目しか選択できません。 しかし、場合によっては複数選択できるようにした方が使い勝手がよくなることもあります。 リストボックス内の項目を複数選択可能にするには MultiSelect プロパティの設定を変更します。
  • MultiSelect プロパティ
  • <プロパティウィンドウでの初期値設定例>
    MultiSelect プロパティの右端をクリックし、ドロップダウンリストから定数を選択します。 MultiSelect プロパティの値を選択 <コードの記述例>
    '複数選択(拡張モード)に設定
    ListBox1.MultiSelect = fmMultiSelectExtended
    

    MultiSelect 定数一覧
    定数 内容
    fmMultiSelectSingle 0 リストボックス内の項目を1 つだけ選択できます。 (既定値)
    fmMultiSelectMulti 1 リストボックス内の項目を複数選択することができます。 左クリックまはた Space キーにより、選択および選択解除ができます。
    fmMultiSelectExtended 2 リストボックス内の項目を複数選択することができます。 マウスのドラッグや Shift または Ctrlキーと左クリックの組み合わせによる選択が可能です。

  • MultiSelect プロパティの選択モードによる選択操作の違い
    • 単一選択モード(fmMultiSelectSingle)
    • "経済学部"をクリックした後、"工学部"をクリックすると、選択されるのは最後にクリックした1つの項目だけです。

      一番上を選択  ⇒  3番目を選択

    • 複数選択モード(fmMultiSelectMulti)
    • "経済学部"をクリックした後、"工学部"をクリックすると、両方選択することができます。 選択を解除する場合は、もう一度クリックするか、Space キーを押下します。

      一番上を選択  ⇒  1番目と3番目を選択

    • 拡張選択モード(fmMultiSelectExtended)
    • クリックのみの操作は単一選択モードと同じです。
      マウスでドラッグすると、ドラッグした範囲の項目をすべて選択することができます。

      ドラッグですべて選択

      "経済学部"をクリックした後、Shift キーを押しながら"工学部"をクリックすると、その範囲の項目をすべて選択することができます。

      1番目から3番目を選択

      "経済学部"をクリックした後、Ctrl キーを押しながら"工学部"をクリックすると、それぞれ個別に選択することができます。

      1番目と3番目を選択

選択項目のインデックス

  • ListIndex プロパティ
  • 現在選択されている項目のインデックスはコンボボックスと同様に ListIndex プロパティで取得可能です。 また、このプロパティに値をインデックス値を設定することで、その値に対応する項目を選択状態にすることができます。

    <コードの記述例>
    '選択されている項目のインデックスを表示
    MsgBox "ListIndex = " & ListBox1.ListIndex
    

    3番目を選択  ⇒  リストインデックス表示結果


  • Selected プロパティ
  • 前述の ListIndex プロパティでは複数選択されている場合に対処できません。 複数選択される可能性がある場合(MultiSelect プロパティfmMultiSelectMulti または fmMultiSelectExtended の場合)、 Selected プロパティを使用します。 このプロパティには True / False を設定することが可能で、True を設定すると選択状態、False を設定すると未選択状態にすることができます。

    【構文】
    lbo.Selected( Index )

    【戻り値】 ブール型 (Boolean)

    ※上記構文中の lbo はリストボックスオブジェクトのインスタンスを表します。


    <コードの記述例>
    次の例は、複数選択可能なリストボックスにおいて、選択されているインデックスをすべて表示するものです。 コマンドボタンのクリックイベントなどに記述して実行します。
    Private Sub CommandButton1_Click()
        Dim i As Integer
        Dim msg As String
        msg = ""
    
        With ListBox1
            For i = 0 To .ListCount - 1
                If .Selected(i) Then
                    msg = msg & "," & i
                End If
            Next
        End With
    
        If msg = "" Then
            MsgBox "選択項目なし"
        Else
            '一番最初のカンマを取り除いて表示する。
            MsgBox "選択インデックス = " & Mid(msg, 2)
        End If
    End Sub
    



    • 未選択の場合
    • リスト未選択  ⇒  リスト未選択時の表示結果

    • 1つだけ選択されている場合
    • 3番目を選択  ⇒  1つ選択時の表示結果

    • 複数選択されている場合
    • 1番目と3番目を選択  ⇒  複数選択時の表示結果


リストボックスのスタイル

リストボックスの表示スタイルは ListStyle プロパティで設定します。 この表示スタイルは MultiSelect プロパティ の設定にも影響を受け、 単一選択モードかそれ以外かで表示スタイルが変わってきます。
  • ListStyle プロパティ
  • <プロパティウィンドウでの初期値設定例>
    ListStyle プロパティの右端をクリックし、ドロップダウンリストから希望のスタイルに対応する定数を設定します。
    ListStyleプロパティに希望のスタイルに対応する定数を設定 <コードの記述例>
    'リストボックスをオプションスタイルに設定
    ListBox1.ListStyle = fmListStyleOption
    

    ListStyle定数一覧
    定数 内容
    fmListStylePlain 0 標準のリストボックスを表示します。
    fmListStyleOption 1 各項目の先頭にオプションボタンまたはチェックボックスを表示します。 MultiSelect プロパティが単一選択モードの場合はオプションボタン、 それ以外の場合はチェックボックスが表示されます。


    <オプションスタイル(fmListStyleOption)設定時の選択モードによる表示スタイルの違い>
    • 単一選択モードの場合の表示スタイル
    • 単一選択モードの場合の表示スタイル
    • 複数選択モードまたは、拡張選択モードの場合の表示スタイル
    • 複数選択モードの場合の表示スタイル

<サイト内関連リンク> 関連リンクもチェック!!
- コントロール一覧
- 各コントロールに共通のプロパティ
   (Width、Height、BackColor、Enabled、Visible、ControlTipText)
カテゴリ内ページ



Page
Top