次の方法で共有


Control.ItemsSelected プロパティ (Access)

ItemsSelected プロパティを使用して、非表示の ItemsSelected コレクションへの読み取り専用参照を返します。 この非表示のコレクションを使用すると、複数選択リスト ボックス コントロールの選択した行のデータにアクセスできます。

構文

ItemsSelected

Control オブジェクトを表す変数。

注釈

ItemsSelected コレクションは、オブジェクトのコレクションではなく、バリアント型 ( Variant ) 変数のコレクションであるという点で、他のコレクションとは異なります。 各バリアント型 ( Variant ) 変数は、リスト ボックスまたはコンボ ボックスの選択行を参照する整数インデックスです。

ItemsSelected コレクションを Column プロパティまたは ItemData プロパティと共に使用して、リスト ボックスまたはコンボ ボックスの選択行からデータを取得します。 ItemsSelected コレクションを表示するには、 For Each...Next ステートメントを使用します。

たとえば、フォームに [従業員 ] リスト ボックスがある場合は、 ItemsSelected コレクションを一覧表示し、コントロールの ItemData プロパティを使用して、リスト ボックス内の選択した各行のバインドされた列の値を返すことができます。

リスト ボックスで複数の行を選択するには、コントロールの " MultiSelect /複数選択" プロパティを [Simple/標準] または [Extended/拡張] に設定します。

ItemsSelected コレクションには、Count プロパティと Item プロパティの 2 つのプロパティがあり、メソッドはありません。

次の使用例は、連絡先フォームの [名前] リスト ボックスで、選択した各行のバインドされた列の値を出力します。 次の例を実行するには、リスト ボックスを作成し、その " BoundColumn /連結列" プロパティに値を設定して、" MultiSelect /複数選択" プロパティを [Simple/標準] または [Extended/拡張] に設定します。 フォーム ビューに切り替え、リスト ボックスで複数の行を選択し、次のコードを実行します。

Sub BoundData() 
 Dim frm As Form, ctl As Control 
 Dim varItm As Variant 
 
 Set frm = Forms!Contacts 
 Set ctl = frm!Names 
 For Each varItm In ctl.ItemsSelected 
 Debug.Print ctl.ItemData(varItm) 
 Next varItm 
End Sub

次の例では、同じリスト ボックス コントロールを使用しますが、バインドされた列の値だけでなく、リスト ボックス内の選択した行ごとに各列の値を出力します。

Sub AllSelectedData() 
 Dim frm As Form, ctl As Control 
 Dim varItm As Variant, intI As Integer 
 
 Set frm = Forms!Contacts 
 Set ctl = frm!Names 
 For Each varItm In ctl.ItemsSelected 
 For intI = 0 To ctl.ColumnCount - 1 
 Debug.Print ctl.Column(intI, varItm) 
 Next intI 
 Debug.Print 
 Next varItm 
End Sub

サポートとフィードバック

Office VBA またはこの説明書に関するご質問やフィードバックがありますか? サポートの受け方およびフィードバックをお寄せいただく方法のガイダンスについては、Office VBA のサポートおよびフィードバックを参照してください。