- ベストアンサー
リストボックス(複数選択しない)の場合の選択解除について
こんにちは。現在ACCESS2000のフォームにリストボックスを配置し、 複数選択は「しない」に設定しています。 リストボックスの項目をどれか一つ選択するか全く選択しないことを 可能としたい(選択している値を再度クリックすると選択解除できるよう にしたい)のですが、うまくいきません。 何か方法がありましたら、ご教示願います。
- みんなの回答 (2)
- 専門家の回答
質問者が選んだベストアンサー
#1の補足&別提案 pooh-tanさんの仰るとおりでした。(無念) で、違う方法です。 複数選択のプロパティを「する」にして、複数選択させない方法です。 (泥臭いプログラムだが動きはOK) Private lngIdx As Long 'リスト選択インデックス格納用変数 Private Sub Form_Load() lngIdx = -1 'リストボックスが初期選択されていない場合 End Sub Private Sub list1_Click() If list1.ItemsSelected.Count > 1 Then For i = 0 To list1.ListCount list1.Selected(i) = False Next i list1.Selected(list1.ListIndex) = True lngIdx = list1.ListIndex Else lngIdx = -1 End If End Sub
その他の回答 (1)
- smart600cc
- ベストアンサー率39% (97/245)
もっと良い方法があると思いますけど、とりあえず急ぎならば、これでいいのでは。 コードビルダ(VBA)でプログラム。 リストボックス名:list1 選択の有無及び値はlngIdxで取得(-1:未選択) Private lngIdx As Long 'リスト選択インデックス格納用変数 Private Sub Form_Load() lngIdx = list1.ListIndex End Sub Private Sub list1_Click() If lngIdx = list1.ListIndex Then list1.ListIndex = -1 lngIdx = -1 Else lngIdx = list1.ListIndex End If End Sub
お礼
ご回答ありがとうございます。上記の通りやってみたんですが、 確かに選択の解除ができるようになったのですが、選択を解除した 場合他のコントロール(コマンドボタンやテキストボックス)を操作する ことができくなってしまいます。 たびたび申し訳ありませんが、宜しくお願いします。
お礼
上記方法でうまくいきました。 smart600ccさん、大変ありがとうございました!!