ExcelVBA リストボックスの複数選択処理がうまくいきません
こんばんは、助けてください。
EXCEL2007です。
ユーザーフォームにリストボックス(Listbox1)を複数選択可能で作成。
リストボックス各行の4列目には「A」か「B」のいずれかが入っており、選択した行の4列目が「A」ならば「B」を、
「B」ならば「A」をCommandButton1押下でセルに反映させたいのですが、うまくいきません。
[反映先のセル]
・リストボックス1行目⇒セルC4(列番号3)
・リストボックス2行目⇒セルG4(列番号7)
・リストボックス3行目⇒セルK4(列番号11)
・リストボックス4行目⇒セルO4(列番号15)
・リストボックス5行目⇒セルS4(列番号19)
・以降同規則でつづく
[コード]
01 Private Sub CommandButton1_Click()
02 Dim ListRow As Integer
03 Dim Retsu As Integer
04
05 For ListRow = 0 To Listbox1.ListCount - 1
06 If Listbox1.Selected(ListRow) Then
07 Retsu = (ListRow + 1) * 3 + ListRow
08 If Listbox1.List(ListRow, 3) = "A" Then
09 Cells(4, Retsu).Value = "B"
10 Else
11 Cells(4, Retsu).Value = "A"
12 End If
13 End If
14 Next ListRow
15 End Sub
[現象]
1.単一選択時は、OK。
2.複数選択時は、選択した行のうち一番はじめの行のみOK。
3.試しに、EndSub直前でListbox1.Selected(各ListRow)を検証すると、すべてFalseになってしまっている。
4.IF文(07~12行目)を削除した上で、EndSub直前でListbox1.Selected(各ListRow)を検証すると、True/Falseは意図通りになっている。
IF文(07~12行目)が悪さをしているのでしょうか?
うまいやり方をご教授いただければ、幸いです。m(_ _)m
お礼
ありがとうございます。悩んでおり可決でき感謝しています。