• ベストアンサー
※ ChatGPTを利用し、要約された質問です(原文:リストボックスに縦スクロールバーと選択)

リストボックスに縦スクロールバーと選択

このQ&Aのポイント
  • VB初心者必見!リストボックスの使い方と縦スクロールバーの設定法を解説します
  • リストボックスの選択状態を他のリストボックスに反映させる方法とは?初心者でもわかる解説
  • リストボックスに縦スクロールバーを追加し、スクロール時にリストを自動的に更新する方法をご紹介

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

  • ベストアンサー
  • redfox63
  • ベストアンサー率71% (1325/1856)
回答No.1

VBのバージョンやエディションなどを明記しましょう VB6などなら ListBoxのClickイベントで処理します Private Sub List_Click(Index as Integer)   ' 再帰防止用フラグ   Static sFlag = Boolean   if sFlag then exit Sub   sFlag = True   dim n as Integer   n = List( index ).ListIndex   Select case Index   case 0     list(1).ListIndex = n     list(2).ListIndex = n   case 1     list(0).ListIndex = n     list(2).ListIndex = n   case 2     list(0).ListIndex = n     list(1).ListIndex = n   end select   sFlag = False End Sub VScrollとの連動は Scrollイベントで Private Sub VScroll1_Scroll()   dim vIndex as Integer   vIndex = VScroll1.Value   List(0).TopIndex = vIndex   List(1).TopIndex = vIndex   List(2).TopIndex = vIndex End Sub FormのLoadイベントで Private Sub Form_Load()   VScroll1.max = List(0).ListCount - 1 End Sub といった具合です すべてのリストボックスの項目数が一致しているならばですが

googoo2839
質問者

お礼

早速のご回答ありがとうございます。回答どおりプログラムを書いたら うまく動作しました。ありがとうございます。ただ縦スクロールバーを下まで動かすと、Scrollイベントで行が500行になると「プロパティの値が不正です」とでるのですが、あれは値が500以上になるとでるものなんでしょうか?時間があればご教授お願いします。 ちなみにVB4.0です。

その他の回答 (1)

  • redfox63
  • ベストアンサー率71% (1325/1856)
回答No.2

VScroll1.Maxの設定をちゃんとしたのでしょうか? Form_LoadイベントなどのListBoxの項目を初期化した後で VScroll1.Max = List(0).ListCount - 1 として初期設定しないといけませんよ Maxプロパティは 32767まで設定可能です ListBoxの TopIndexは登録されているリスト項目の数-1までが設定可能値です リスト項目の数をあらわすプロパティが ListCountになります

googoo2839
質問者

お礼

すいません、設定忘れてました。設定しましたらうまく動作しました。 いやーさすが専門家です。本当にありがとうございました。

関連するQ&A