|
▼さんたぱぱ さん:
こんばんは
まず、なぜ空白行を選ぶと 1 になるのか? ということについてですが
ListBox1.Value + 1
この ListBox1.Value が 「空白値」で、VBAの多くの処理機能で計算上、
空白値を 0 と見なします。 なので 0 + 1 = 1 となりますので 1行目を参照するわけです。
で、空白値をチェックするより、実際の値のあるリスト部分をListBox1のリストとして
設定すればよろしいんです。
方法は2つほど。
まず、プロパティで設定してある RowSource をクリアして未設定にしておいてください。
その上で、以下のいずれかで。
Private Sub UserForm_Initialize()
With Sheets("Sheet1") 'リストがあるシート名。実際のものに変更してください。
ListBox1.List = .Range("A2", .Range("A" & .Rows.Count).End(xlUp)).Resize(, 20).Value
End With
End Sub
または
Private Sub UserForm_Initialize()
Dim z As Long
With Sheets("Sheet1") 'リストがあるシート名。実際のものに変更してください。
z = .Range("A" & .Rows.Count).End(xlUp).Row
End With
ListBox1.RowSource = "Sheet1!A2:T" & z
End Sub
|
|