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


私は、ほとんど使いませんが、ListBoxのRowSourceプロパティを使う方法もあります。

というリストがSheet1に入力されているとき

UserFormのデザイン段階で、[プロパティ]ウィンドウの[RowSource]プロパティに「Sheet1!A2:A5」と設定します。すると、デザイン段階で、リストボックスにはワークシートのデータが反映されます。

UserForm表示中に、セルのデータが変更されると、リストボックスにも反映されます。

Private Sub CommandButton1_Click()
    Range("A4") = "立花"
End Sub

UserForm表示中に、RowSourceプロパティを変更することも可能です。

Private Sub CommandButton1_Click()
    ListBox1.RowSource = "Sheet1!B2:B4"
End Sub

私がRowSourceプロパティを使わないのは、RowSourceプロパティを設定したリストボックスでは、AddItemメソッドで新しい項目を追加できなかったり、RemoveItemメソッドで任意の項目を削除できないからです。

プロパティを設定するだけという手軽さの反面、やりたいことを自由にできないという不便さを感じます。やっぱ、自分で操作するデータは、自分でコーディングするのが基本だと思いますしね。いや、もちろん私感ですけど。