オプションボタンの管理ツール:ListViewコントロール

昨日は、シート上に配置された複数のオプションボタンについて、キャプションを編集する仕掛けを考えてみた。
infoment.hatenablog.com
でも、何だかあんまりイケテナイ気がする。そこで、ふと思った。

リストボックスを「ListView」にしたらどうなるか?

早速やってみよう。
f:id:Infoment:20190423222929p:plain

今回 ListView の使い方などについては、↓こちらを参考にした。
officetanaka.net

LIstViewの設定がこちら。前半はリストボックスの時と同じで、後半がListViewの設定になっている。

Private Sub SetListView()
    Set Dict = New Dictionary

    Dim i As Long
        For i = 1 To col.Count
            With col.Item(i).Object
                ListSeq(i, 1) = col.Item(i).Name
                ListSeq(i, 2) = .GroupName
                ListSeq(i, 3) = .Caption
                
                ' 重複除去のために辞書を用いているため、アイテム不問。
                Dict(.GroupName) = 1
            End With
        Next
        
        With ListView1
            .View = lvwReport
            .LabelEdit = lvwManual
            .HideSelection = False
            .AllowColumnReorder = True
            .FullRowSelect = True
            .Gridlines = True
            
            .ColumnHeaders.Add , "_ObjectName", "オプションボタン名称", 120
            .ColumnHeaders.Add , "_GroupName", "グループ名", 120
            .ColumnHeaders.Add , "_Caption", "キャプション", 120
            
            For i = 1 To col.Count
                With .ListItems.Add
                    .Text = ListSeq(i, 1)
                    .SubItems(1) = ListSeq(i, 2)
                    .SubItems(2) = ListSeq(i, 3)
                End With
            Next
        End With
End Sub

結果、このような見た目になった。
f:id:Infoment:20190423225129p:plain

ListViewのヘッダーを設定できるようになったので、ラベルが3つ不要になった。
「.Gridlines = True」にして罫線を見えるようにしたので、見た目も良くなった。

後は前回までの動作をこちらで再現できるかどうかだが・・・それは、これからの挑戦です(とりあえず、今日はここまで)。

参考まで。