• ベストアンサー

VB6.0 リストボックスの扱いについて

【環境】VB6.0,WinXPです。 現在独学でVB6.0を勉強しています。 http://www4.plala.or.jp/tamo/vb/vb99.html 上記HP内「課題9」を現在やっているのですが、この問題のように リストボックス内のデータを検索→選択状態に。という流れは、どう書けばいいのか分かりません。 始めたばかりなので、大雑把な質問で申し訳ありませんが、ご教授お願いします。

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

  • ベストアンサー
  • kiki_s
  • ベストアンサー率59% (147/248)
回答No.3

>もしよろしければ、具体的なサンプルコードのようなものを教えていただけませんか? それじゃ勉強になりませんがな(^^;; まぁ、取りあえず部分的なコードで・・・ リストボックス:List1 テキストボックス:Text1(アイテム追加用) テキストボックス:Text2(検索用) コマンドボタン:適当 'データ追加ボタンをクリックしたときテキストボックスに入力された文字列データを 'リストボックスのアイテムとして追加 List1.AddItem Text1.Text '検索ボタンをクリックしたときリストボックスから '検索したい文字列が含まれているアイテム選択 'List1のプロパティで「MultiSelectプロパティ」を「2」にする If List1.ListCount >= 0 Then '選択を解除 For A = 0 To List1.ListCount - 1 List1.ListIndex = A List1.Selected(A) = False Next '検索と文字列が含まれているとき選択状態にする For A = 0 To List1.ListCount - 1 If 0 < InStr(List1.List(List1.ListIndex), Text2.Text) Then List1.Selected(A) = True End If Next End If ヒントじゃないですね、これじゃ。 ほとんど書いてるなぁ。 一つだけ注意。 適当に書いたコードですが、このコードが正しいと思わないで下さい。 やり方は千差万別ですので。

yk0001
質問者

お礼

ありがとうございます。 おかげさまで実装することが出来ました。 また何かあればご教授お願いします。

その他の回答 (2)

  • kiki_s
  • ベストアンサー率59% (147/248)
回答No.2

方法はNo.1さんの書かれた通り。 Like演算子以外ならInStr関数で検索する方法もあります。 Like演算子はパターンマッチングが出来るので便利ですが、 単純な比較ならInStr関数の方が分かりやすいかも知れません。 余談ですが、一度検索した後、別の文字を検索した時、 前の選択が解除されるようにする必要もあります。 考えてみて分からなければ、また質問してみて下さい。

yk0001
質問者

お礼

ありがとうございます。 もしよろしければ、具体的なサンプルコードのようなものを教えていただけませんか? よろしくお願いします。

  • kuro-pon
  • ベストアンサー率0% (0/4)
回答No.1

For~Nextでリストボックス内のデータ一行毎にLikeで検索文字を探す。 あったらSelectedプロパティを操作する。 リストボックスは複数選択可にしておかなければ出来ませんので注意してください。 以上、勉強中とのことなのでコードは記述しません。

yk0001
質問者

お礼

ありがとうございます。 For~Nextと聴いてもいまいちパッとしないのですが… よろしければコードのほうもお願いしたいと思います。

関連するQ&A

  • VB6.0 リストボックスやコンボボックスについて

    環境VB6.0、WinXPです。 現在VB6.0について、独学で学んでいます。 インターネットにて下記のサイトを見つけました。 http://www4.plala.or.jp/tamo/vb/vb99.html このサイトの課題5と6でつまづいています。 5に関しては、文字を分割して表示するプログラムなのですが、毎回違う値が入ってくることを想定すると、どのようにして一文字ずつリストボックスに表示すれば良いのか分かりません。 6に関しては、コンボボックスの全値を取得できるような方法があるのでしょうか? 初心者なので、コードなど参考になるものを教えていただければ幸いです。 どなたかご教授下さい。お願いいたします。

  • VBとリストボックス

    こんにちわ。 いまVB6.0sp5でリストボックスに チェックボックス付きのリストを表示し, クリックで複数選択するロジックを組んでいます。 リストに表示するデータ件数がリストボックスの高さを超えるため, 横スクロールさせる必要があります。 そこで,2列目のキャプションをクリックすると, スクロールし,選択した行以外のチェックボックスが見た目, 消えてしまいます。 なお消えたチェックボックスの箇所をクリックすると, その行のチェックボックスが選択された状態で表示されます。 2列目のキャプションをクリックしたときに,ほかの行のチェックボックスを 消さないようにしたいのですが, どうすれば良いでしょうか? 教えてください。 宜しくお願いします。

  • VB6.0 リストボックス

    VB6.0で3つのリストボックスに関連性を持たせたいと思っています。 Private Sub lstBox_Click() Dim intLstIndex As Integer intLstIndex = lstA.ListIndex If (lstA.Selected(intLstIndex)) Then lstB.Selected(intLstIndex) = True lstC.Selected(intLstIndex) = True Else lstB.Selected(intLstIndex) = False lstC.Selected(intLstIndex) = False End If End Sub 以上のように、どれか一つのリストボックスがクリックされたら他のリストボックスの同じ行がtrueになるようにしています。 しかしこれでは件数が増えた場合、選択された行が揃わなくなる場合があり非常に見栄えが悪くなります。 リストボックスでなくともかまわないのですが、このように三つの項目に関連性をもたせることはできませんでしょうか。

  • VB6でチェックボックス付のリストボックスを配置しているのですが、行を

    VB6でチェックボックス付のリストボックスを配置しているのですが、行を選択したときにチェックON/OFFにさせることはできないでしょうか? 現状だとチェックボックスをクリックしないと動かないので・・・。

  • VBのリストボックスでのスクロールバーについて

    VB5で5件のデータ表示サイズをもつリストボックスに 10件のデータを設定した場合にスクロールバーが表示 されますが、この画面を参照モードとして使用したい場合に List1.Enabled=False としました。しかし、この方法だとスクロールバーも 非活性となり、5件以降のデータが参照出来なくなります。 非活性にせず、参照モードの場合にはクリックイベント内で List1.Selected(n)=False Exit Sub をして操作出来ない様にしました。しかし、これだと リストボックスを選択した際に一瞬選択状態になってしまいます。 選択状態にしない方法、もしくは非活性のままスクロール出来る 方法を知っている方がいましたら、御教授下さい。

  • リスト間のアイテム移動について

    現在独学でhttp://www4.plala.or.jp/tamo/vb/vb99.htmlの問題の10番を解いてるのですが、どうしてもうまくいきません。 左のリストボックスから右のリストボックスへの1つ1つのアイテム移動はできたのですが、アイテムを複数同時に選択すると違うアイテムが移動したりすべてのアイテムが移動してしまいます。 今のコードは Private Sub Command1_Click() For i = List1.ListCount To 1 Step -1 If List1.Selected(i - 1) = True Then List2.AddItem List1.Text List1.RemoveItem List1.ListIndex End If Next End Sub Private Sub Form_Load() With List1 .AddItem "FreeBSD" .AddItem "Linux" .AddItem "Macintosh" .AddItem "MS-DOS" .AddItem "Slaris" .AddItem "Windows 95" .AddItem "Windows CE" .AddItem "Windows NT" End With End Sub このように指定しています。 解決法がありましたら教えてください。

  • フォームのリストボックスの選択

    vb2005にてIEのリストボックスの選択をしようとしているのですが リストボックスが変動的で常に一番最後を選択したいのですが どのようにすればよろしいでしょうか? WebBrowser1.Document.Forms(0).DomElement("category").selectedindex() = 1 これだと上から2つめが選択されるんですよね。 リストボックスの一番最後を選択したいんです。 どうすればいいでしょうか?教えてください。

  • リストボックスについて

    リストボックスの横幅は指定できるのでしょうか? リストボックスの見栄えを良くするため、リストボックス内にテーブルを使用 したいのですが可能でしょうか? 下図のように、コード+名称を1つの選択項目とする為、コードと名称の  桁位置を固定したいのですが、、、   aaa あああ bb いいいいい ccc ううううう 環境はIEです、宜しくお願いします 

    • ベストアンサー
    • HTML
  • リストボックスの使い方で…

    VB2005で開発をしております。 リストボックスに品目名を表示し、選択した品目名の品目コードをDBに登録したいと思っています。 ただ、品目名の裏で品目コードを保持しておく方法がわかりません。 なにか良い方法があれば教えていただきたいです。

  • Excelのリストボックスにコメントは付けられないでしょうか

    同じような質問が他に出ていればそのNoをお教えいただいても結構なのですが・・・ Excelのリストボックスにカーソルが合わさるとセルにつけられるようなコメントが表示できないでしょうか リストボックスを大きくは作れない事情からリストボックスにカーソルが合わさった時に選択の補足説明が出来ないものかと考えております コメントではなくほかの代替機能でも良いのですがどなたかご教示を願います 因みにVBはわかりません。

専門家に質問してみよう