VB6.0使ってます。ごく最近勉強し始めたばかりです。独学で勉強してます。
リストボックスの中に1、2、3、4、5、の五つの数値があるとします。
multiselectを標準に設定して、2,3,4を選択してcommand1をクリックしたとき
選択された数値だけを足し算してlabel1に表示する。(結果は9)何も選択せずにcommand1をクリックしたらリストボックス内の全ての数値を足し算してlabel1に表示する。(結果は15) の後者の方がうまくいきません。
Private Sub Command1_Click()
Dim i, a, b As Long
For i = 0 To List1.ListCount - 1
If List1.Selected(i) = True Then
a = a + Val(List1.List(i))
Label1.Caption = a
Else
List1.Selected(i) = False
b = b + Val(List1.List(i))
Label1.Caption = b
End If
Next i
と書いてみたのですが全然無理でした。何も選択せずにcommand1を押した時〜の書き方を教えてください。
こんな感じになるのかと。。。。
選択数が0 の場合は
リストすべての値を加算後、ラベルに表示
選択数が0 以外の場合は
選択されているリストの値を加算後、ラベルに表示
Private Sub Command1_Click()
Dim i, a As Long
If List1.SelCount = 0 Then
For i = 0 To List1.ListCount - 1
a = a + Val(List1.List(i))
Next i
Label1.Caption = a
Else
For i = 0 To List1.ListCount - 1
If List1.Selected(i) = True Then
a = a + Val(List1.List(i))
End If
Next i
Label1.Caption = a
End If
End Sub
[要点]
リストボックス.SelCount で
選択されている リストの個数を取得できます。
リストボックス.Selected(i) で
個々のリストの選択状態(True:真/False:偽)を取得できます。
selCount というものがあったのですか。勉強になりました。わかりやすい要点まで書いてくださってありがとうございました。
ツイート | ![]() |