現象
複数選択可能なリストボックスの項目を Selected プロパティで選択した際に、Access 2007 や Access 2010 ではリストボックス内が自動的にスクロールされ、選択した項目が表示されます。
原因
Access 2003 以前では、リストボックスがスクロールされる現象は発生しませんでした。
Access 2007 以降の Access では、リストボックス内の項目を表示する内部動作が変更されたため、スクロールします。
Notes : リストボックスの規定値は複数選択を行わない状態であり、その場合には以前の Access でもリストボックスがスクロールされ、選択した項目が表示されます。
状況
この動作は仕様です。
詳細
現象の再現手順
1. 新規 .mdb ファイルを作成します。
2. 非連結の単票フォームを作成します。
3. リストボックスを配置し、以下のプロパティを設定します。
名前:List1
値集合タイプ:リスト
値集合ソース:A1;A2;A3;A4;A5;A6;A7;A8;A9;A10
高さ:リストの項目が 2、3 行表示できるだけの高さにする
複数選択:標準
4. コマンドボタンを作成します。コマンドボタン ウィザードが表示される場合には、"キャンセル" をクリックします。
5. コマンドボタンを右クリックし、[イベントのビルド]-[コード ビルダー] を選択し、"OK" をクリックします。Visual Basic Editor が起動します。
6. Click イベントに、以下のコードを入力後、Visual Basic Editor を閉じます。
me.List1.Selected(7) = True
7. フォームをフォームビューに切り替えた後で、コマンドボタンをクリックします。
結果
リストボックス内が自動的にスクロールされ、選択した項目が表示されます。