ListBoxを操作するクラスモジュール ② 全選択
ListBoxを操作するクラスモジュールを、私なりに作成中。
昨日は、リストボックスのリストに配列をあてるまで、を行った。
infoment.hatenablog.com
今日は、昨日の続きから。
クラスモジュール(ListBoxControl)
私だけかもしれないが、リストボックスに於いて、何かと登場する
以下の操作を追加してみた。
- 全選択
- 全解除
ついでに思い付きで、以下も追加。
- 選択反転
' リストボックス内の全行を選択。 Public Sub SelectAll() For i = 0 To TargetListBox.ListCount - 1 TargetListBox.Selected(i) = True Next End Sub ' リストボックス内の全行を非選択。 Public Sub UnselectAll() For i = 0 To TargetListBox.ListCount - 1 TargetListBox.Selected(i) = False Next End Sub ' リストボックス内の全行について、選択状態を反転。 Public Sub ReverseSelection() For i = 0 To TargetListBox.ListCount - 1 TargetListBox.Selected(i) = Not TargetListBox.Selected(i) Next End Sub
それでは、昨日のユーザーフォームに追加してみよう。
Dim Lbc As VBAProject.ListBoxControl Private Sub UserForm_Initialize() ' リストを作成するための配列。 Dim arr As Variant arr = Range("A1").CurrentRegion ' クラスモジュール初期化。 Set Lbc = New VBAProject.ListBoxControl ' ListBox1を対象としてセット。 Set Lbc.TargetListBox = ListBox1 ' 配列からリスト作成。 Lbc.SetList arr End Sub ' 全選択。 Private Sub SelectAllButton_Click() Lbc.SelectAll End Sub ' 全非選択。 Private Sub UnselectAllButton_Click() Lbc.UnselectAll End Sub ' 選択反転。 Private Sub ReverseSelectionButton_Click() Lbc.ReverseSelection End Sub
結果がコチラ。
良い感じになってた。
次回に続きます。
参考まで。