ComboBox.ColumnCount プロパティ (Access)
ColumnCount プロパティを使用して、リスト ボックスまたはコンボ ボックスのリスト ボックス部分に表示される列の数を指定するか、グラフ コントロールまたはバインドされていないオブジェクト フレーム内の OLE オブジェクトに送信する列の数を指定します。 値の取得および設定が可能です。整数型 (Integer) の値を使用します。
構文
式。ColumnCount
式ComboBox オブジェクトを表す変数。
注釈
ColumnCount プロパティの下限値は 1 です。上限値は、コントロールの " RowSource /値集合ソース" プロパティに指定されたテーブル、クエリ、または SQL ステートメントのフィールド数、または値リストの値の最大数です。
" DisplayControl /表示コントロール" プロパティがコンボ ボックスまたはリスト ボックスに設定されているテーブル フィールドの場合は、テーブルのデザイン ビューのフィールド プロパティ セクションにある [ ルックアップ ] で、このプロパティを設定できます。
たとえば、Employees フォームのリスト ボックスの ColumnCount プロパティを 3 に設定した場合、1 つの列は姓を一覧表示でき、もう 1 つの列は名を一覧表示でき、3 つ目は従業員 ID 番号を一覧表示できます。
コンボ ボックスまたはリスト ボックスには、複数の列を表示できます。 コントロールの " RowSource /値集合ソース" プロパティにテーブル、クエリ、または SQL ステートメントが指定されている場合、コンボ ボックスまたはリスト ボックスには、そのソースのフィールドが左から順に " ColumnCount /列数" プロパティで指定された値まで表示されます。
既存のソースにない組み合わせのフィールドを表示するには、新しいクエリまたは新しい SQL ステートメントを作成し、" RowSource /値集合ソース" プロパティにフィールドと順序を指定します。
" RowSource /値集合ソース" プロパティに値リストがある場合、つまり " RowSourceType /値集合タイプ" プロパティが [Value List/値リスト] に設定されている場合、値は " RowSource /値集合ソース" プロパティに収められている順番でコンボ ボックスまたはリスト ボックスの行および列に配置されます。 たとえば、" RowSource /値集合ソース" プロパティに "Red; Green; Blue; Yellow" というリストが設定され、" ColumnCount /列数" プロパティが 2 に設定されている場合、コンボ ボックスまたはリスト ボックスの最初の行の最初の列には "Red" が格納され、同じ行の 2 番目の列には "Green" が格納されます。 2 番目の行の最初の列には "Blue" が格納され、同じ行の 2 番目の列には "Yellow" が格納されます。
ColumnWidths プロパティを使用して、コントロールに表示される列の幅を設定するか、列を非表示にします。
例
次の使用例では、Column プロパティと "ColumnCount/列数" プロパティを使用して、リスト ボックスで選択された項目の各列の値を表示します。
Public Sub Read_ListBox()
Dim intNumColumns As Integer
Dim intI As Integer
Dim frmCust As Form
Set frmCust = Forms!frmCustomers
If frmCust!lstCustomerNames.ItemsSelected.Count > 0 Then
' Any selection?
intNumColumns = frmCust!lstCustomerNames.ColumnCount
Debug.Print "The list box contains "; intNumColumns; _
IIf(intNumColumns = 1, " column", " columns"); _
" of data."
Debug.Print "The current selection contains:"
For intI = 0 To intNumColumns - 1
' Print column data.
Debug.Print frmCust!lstCustomerNames.Column(intI)
Next intI
Else
Debug.Print "You haven't selected an entry in the " _
& "list box."
End If
Set frmCust = Nothing
End Sub
次の例は、別の列を表示しながら、1 つの列にバインドされたコンボ ボックスを作成する方法を示しています。 ColumnCount プロパティを 2 に設定すると、RowSource プロパティによって指定されたデータ ソースの最初の 2 列が cboDept コンボ ボックスに表示されます。 BoundColumn プロパティを 1 に設定すると、コンボ ボックスの値を調べるときに最初の列に格納されている値が返されるようになります。
ColumnWidths プロパティは 2 つの列の幅を指定します。 最初の列の幅を 0in に設定すると、最初の列はコンボ ボックスに表示されません。
Private Sub cboDept_Enter()
With cboDept
.RowSource = "SELECT * FROM tblDepartments ORDER BY Department"
.ColumnCount = 2
.BoundColumn = 1
.ColumnWidths = "0in.;1in."
End With
End Sub
サポートとフィードバック
Office VBA またはこの説明書に関するご質問やフィードバックがありますか? サポートの受け方およびフィードバックをお寄せいただく方法のガイダンスについては、Office VBA のサポートおよびフィードバックを参照してください。