テキストボックスに入力した値をワークシート商品データと比較して(mで商品データを繰り返し参照してます)、その値があった場合、リストボックス3に表示するプログラムを作りたくて色々試したのですが、どうしてもうまくいきません。
理想的には、リストボックスの(0,0)に商品と(0,1)に値段に値を入力した後、1行ずらして(1,0)(1,1)…と商品リストを表示していきたいのですが、(0,0)と(0,1)しか表示されず行が追加されていきません。
i=i+1
じゃ追加されないんでしょうか??
プログラムも初心者でめんどくさいやり方してると思いますが、とりあえず動くようにしたいのでよろしくおねがいします。
Private Sub TextBox3_Change()
Dim m As Integer
Dim i As Integer
Dim j As Integer
i = 0
Dim mylist() As Variant
Worksheets("データ").Cells(3, 1) = TextBox2.Text
Worksheets("データ").Cells(1, 2) = TextBox3.Text
For m = 2 To 131
If Worksheets("商品データ").Cells(m, 2) = TextBox3.Text Then
ReDim mylist(10, 1)
ListBox3.ColumnCount = 2
ListBox3.ColumnWidths = "150;50"
mylist(i, 0) = " " & Worksheets("商品データ").Cells(m, 3)
mylist(i, 1) = " \ " & Worksheets("商品データ").Cells(m, 5)
i = i + 1
ListBox3.List = mylist
Label5.Caption = Worksheets("商品データ").Cells(m, 3)
Label7.Caption = Worksheets("商品データ").Cells(m, 5)
ListBox1.AddItem " " & Worksheets("商品データ").Cells(m, 3) + vbTab + "名前" '+ vbTab + "電話番号" '(Worksheets("商品データ").Cells(m, 3))
ListBox2.AddItem (Worksheets("商品データ").Cells(m, 5))
Worksheets("データ").Cells(1, 1) = Worksheets("データ").Cells(1, 1) + Worksheets("商品データ").Cells(m, 5)
TextBox3.Text = ""
Label21.Caption = Worksheets("データ").Cells(1, 1)
Worksheets("データ").Cells(6, 1) = Worksheets("データ").Cells(1, 1) * 0.05
Worksheets("データ").Cells(7, 1) = Application.RoundDown(Worksheets("データ").Cells(6, 1), 0)
Label9.Caption = Worksheets("データ").Cells(7, 1)
Worksheets("データ").Cells(8, 1) = Label21.Caption
Label12.Caption = Worksheets("データ").Cells(8, 1) + Worksheets("データ").Cells(7, 1)
Worksheets("データ").Cells(9, 1) = Label12.Caption
End If
Next m
End Sub
1行1行ステップ実行してデバッグした結果は?
TextBox3_Change()でイベントが始まって
>TextBox3.Text = ""
のコードを実行しちゃってるけど、再度イベントが
起こってしまうのは意図通りなの?
ツイート | ![]() |