• ベストアンサー

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

こんにちは。現在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

  • リストボックスの選択解除

    VBAでフォーム上にリストボックスを置いています。 最初にフォームを表示した時は 何もリストボックスが選択されておらず 値を追加した後に、何かクリックすると 選択した項目が青?色に変わります。 その青色を解除したいのですが(要は選択状態を解除したい) どうやってすればいいのでしょうか? selected(X) = falseとしましたが何も起こりませんでした。 宜しくお願い致します。

  • Access コンボボックスの複数選択

    Access2007を勉強中の初心者です。 「空白のフォーム」から作成したコンボボックスで、複数選択が可能になるような設定はありませんか? テーブル項目の「ルックアップ」「複数の値を許可」を許したテーブルから作成したフォームでは、コンボボックスで複数の値を選択可能になりますが、「空白のフォーム」から作成した場合にはできないのでしょうか。 リストボックスではスペースをとってしまう為、コンボボックスで行いたいです。 言葉足らずな内容かもしれませんし、大変お手数をおかけしますが、よろしくお願いいたします。

  • リストボックスの複数選択

    ワークシート上に配置するリストボックスで複数選択する場合に値(番号)を返す方法を教えてください。

  • リストの複数選択について

    リストボックスで複数選択(拡張)に設定した場合に Ctrl キーを押しながらクリックすることによって、リスト内の項目を 1 つずつ選択、選択解除出来る機能を Ctrl キーを押さない状態で実現したいのですが 可能でしょうか? また、ほかの機能(コンポーネント)で代用出来る物があれば教えてください

  • ACCESSフォームのリストボックスでレコードが選択できない

    ACCESS2000です。 フォームの左側に親テーブルのフィールド1の値を選択させるリストボックスがあり、そこで選択したレコードにリンクする子テーブルのレコードをフォームの右側にサブフォームで表示させたいのですが、リストボックスでレコードを選択できません(クリックしても反転しません)。でもレコード移動ボタンを押すと、リストボックス内の該当レコードがちゃんと反転し、右側のサブフォームにも正しく反映します。 リストボックスのプロパティはくまなく見ましたがそれらしい設定項目はみつかりませんでした。どこを直せばよいのでしょうか。

  • 複数リストボックスの連動について

    複数リストボックスの連動についてお聞きします。 エクセル2003、VBAのユーザーフォームのリストボックスになります。 VBAに関わらずプログラミング全般初心者で恐縮ですが よろしくご指導ください。 毎月の明細から 地域を分類軸に、そこに含まれる支店を、地域をまたいで複数選択ができるリストボックスの作成をしたいと考えてます。 ListBox1(地域),ListBox2(支店)に値を重複無しに、組み合わせを表示させるまではできたのですが、 ListBox1(地域)の選択を解除した後に、再び選択すると、 ListBox2(支店)の値が重複して表示されてしまいます。 ネットで知恵を探したのですが、 ListBox1のクリックイベント時に、ListBox2の値を消す しか見つからず、自分の課題がどうしても解決できません。 どのような方向性で考えれば、解決できるのか教示いただきたいです。 自分としては、ListBox1の選択を解除したときに、 対応するListBox2が消えればと考えましたが・・・全くうまくいきません。 もし、自分の考えが的外れでしたら、正しい考え方をお教えいただきたいです。 考えが妥当であれば、どういう記述をすべきなのか、 教授願いたいです。 よろしくお願いします。

  • accessでのリストボックス選択のイベント

    お世話になります。 度々で恐縮なのですが、以下の質問を よろしくお願いいたします。 accessのフォーム上にリストボックスとテキスト ボックスをはりつけ、リストボックスに表示されて いる行が選択されたら、その項目値をテキスト ボックスに表示させようとしています。 しかし、リストボックスのイベント(マウスボタン クリック時や開放時)を使ってみたのですが、 二度クリックしないとテキストボックスに表示され ません。 リストボックスの行が選択されたというイベントが あればいいのですが、見当たりません。 どうすれば、リストボックスで行が選択されたという イベントを捕まえることができるのかご教示お願い いたします。

  • エクセルのリストボックスの複数選択について

    エクセルのワークシート上に配置するリストボックスで複数選択する場合に値(番号)を返す方法を教えてください。よろしくお願いします。

  • リストボックスの値を全選択する

    エクセルのユーザーフォームにリストボックスとコマンドボタンを設置し、 コマンドボタンをクリックするとリストボックス内の値を全選択する。 という動作は出来ますでしょうか。 勉強不足で申し訳ありませんが、ご教示願います。

  • Access97のフォーム(リストボックス)について

    Access97のフォームについてです。リストボックスで複数選択設定した場合,その選択項目をテーブルに反映させる方法を教えて下さい。

専門家に質問してみよう