リストボックス内の数値で全て未選択時の計算の仕方

解決


VB初心者  2005-05-24 07:25:57  No: 89997

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を押した時〜の書き方を教えてください。


Take  2005-05-24 08:11:05  No: 89998

こんな感じになるのかと。。。。

選択数が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:偽)を取得できます。


VB初心者  2005-05-24 08:25:07  No: 89999

selCount  というものがあったのですか。勉強になりました。わかりやすい要点まで書いてくださってありがとうございました。


※返信する前に利用規約をご確認ください。

※Google reCAPTCHA認証からCloudflare Turnstile認証へ変更しました。






  このエントリーをはてなブックマークに追加