プロが教えるわが家の防犯対策術!

エクセルVBA ユーザーフォームのリストボックスより選択した数値の取得についてアドバイス願います。

ユーザーフォームのリストボックスに表示させている中から、(列数は5列表示させています)選択行の内より(後ろの)4列から数値を取得し、足し算を行い、テキストボックスに表示したいのですが、構文エラーが出ます。アドバイスをお願います。

Dim 選択行 As Integer
選択行 = Userform1.ListBox1.ListIndex

With Userform1.ListBox1
TextBox1 = .List(選択行, 1) + ListBox1.List(選択行, 2) + ListBox1.List(選択行, 3) + ListBox1.List(選択行0, 4)
End With

A 回答 (1件)

画像があると早いのですが、


>(列数は5列表示させています)
ということは、カラムが5列ですか?

>選択行 = Userform1.ListBox1.ListIndex
これで、選択行が取れなかったように思いますが……。

Private Sub CommandButton1_Click()
 Dim i As Long
 Dim j As Long
 Dim Total As Long
 j = 1 '1列目は読まない
 With ListBox1
  For i = 0 To .ListCount - 1
   If .Selected(i) Then
    Do
     Total = Total + .List(i, j)
     j = j + 1
    Loop Until j > .ColumnCount - 1
    Exit For 'Singleセレクトの場合
   End If
  Next i
 If Total <> 0 Then
  TextBox1.Text = Format$(Total, "#,##0")
 End If
 .Selected(i) = False '選択の反転はここで消える
 End With
End Sub
「エクセルVBA リストボックス、選択した」の回答画像1
    • good
    • 0
この回答へのお礼

有難うございます。
うまくいきました!

お礼日時:2015/06/30 21:08

お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!