リストボックスにデータを登録する(1)


リストボックスにデータを登録するには複数の方法がありますが、最も基本的な方法のひとつはAddItemメソッドです。

 ListBox.AddItem 登録したいデータ, 挿入する位置

2番目の引数[挿入する位置]は省略可能です。いや、本当は、最初の引数[登録したいデータ]も省略可能でなのですが、それでは空欄が挿入されてしまいます。特殊なケースを除いて、そうした使い方は、ほとんどしないでしょうから、引数[登録したいデータ]は普通指定します。

Private Sub CommandButton1_Click()
    ListBox1.AddItem "サンプルデータ"
End Sub

Private Sub CommandButton1_Click()
    Dim i As Long
    For i = 1 To 10
        ListBox1.AddItem "サンプルデータ" & i
    Next i
    ListBox1.AddItem "先頭データ", 0
End Sub

ワークシートに下図のようなデータ入力されているとき、次のコードはA列のデータをリストボックスに登録します。

Private Sub CommandButton1_Click()
    Dim i As Long
    For i = 2 To Cells(Rows.Count, 1).End(xlUp).Row
        ListBox1.AddItem Cells(i, 1)
    Next i
End Sub

ワークシート上のデータをリストボックスに登録するとき、AddItemを使うと遅いんじゃないかと勘違いしている人がいますけど、実際は高速ですよ。パソコンの性能にもよりますが、1万件程度のデータなら一瞬です。私の経験では、AddItemは遅いと勘違いしている人は、実際に試してみないで「遅いに違いない」と思い込んでいることが多いです。そりゃ、人間が1万件のデータを登録するには時間がかかるでしょうけど、やるのはパソコンですから。For Nextで1万回のAddItemを繰り返すことなんて、つべで動画を再生することに比べれば ピィーピィー するようなもんです。もし、数万件のセルデータを登録するようなときは、下記関連項目「リストボックスにデータを登録する(3)」の方法を使ってください。こいつは、鬼のように高速です。