|
おはようございます。
昨日本を見ていたら、ListBox1.Columnを使えばTransposeする必要がないと気付きました。
結果これだけで済んでしまいました。
Dim A() As String
Private Sub CommandButton1_Click()
Dim X As Integer
X = ListBox1.ListCount
ReDim Preserve A(0 To 1, 0 To X)
A(0, X) = TextBox1.Value
A(1, X) = TextBox2.Value
ListBox1.Column = A
DoEvents
End Sub
また、最初にリストボックスの数を想定してリストボックスを区切っておく方法もある事に気付きました。
これだと最初に想定した行数以上は書きこめませんけど...。
想定した行数をオーバーした場合は、作りなおしになります。
新たに大きな配列を作って書きこんであるデータを移してから、と前に書きこんだような感じに
したりするとか、ちょっと面倒くさそうですが..。
Private Sub CommandButton5_Click()
Dim TB() As String
Static CNT As Long
Const LCC = 10 '取合えず最初に0〜10まで、計11コ作っておく。
If ListBox1.ListCount = 0 Then
ReDim TB(0 To LCC, 0 To 1)
ListBox1.List = TB
Erase TB
CNT = 0
Else
CNT = CNT + 1
End If
If CNT <= LCC Then
ListBox1.List(CNT, 0) = TextBox1.Value
ListBox1.List(CNT, 1) = TextBox2.Value
End If
End Sub
|
|