• ベストアンサー

リストボックス(複数選択しない)の場合の選択解除について

こんにちは。現在ACCESS2000のフォームにリストボックスを配置し、 複数選択は「しない」に設定しています。 リストボックスの項目をどれか一つ選択するか全く選択しないことを 可能としたい(選択している値を再度クリックすると選択解除できるよう にしたい)のですが、うまくいきません。 何か方法がありましたら、ご教示願います。

質問者が選んだベストアンサー

  • ベストアンサー
回答No.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

pooh-tan
質問者

お礼

上記方法でうまくいきました。 smart600ccさん、大変ありがとうございました!!

その他の回答 (1)

回答No.1

もっと良い方法があると思いますけど、とりあえず急ぎならば、これでいいのでは。 コードビルダ(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

pooh-tan
質問者

お礼

ご回答ありがとうございます。上記の通りやってみたんですが、 確かに選択の解除ができるようになったのですが、選択を解除した 場合他のコントロール(コマンドボタンやテキストボックス)を操作する ことができくなってしまいます。 たびたび申し訳ありませんが、宜しくお願いします。

関連するQ&A