つらつら Excel VBA

私の備忘録です。

ListViewコントロール

ListViewコントロールはこんな感じ。
f:id:tanaka0:20190426090905p:plain

通常、ツールボックスには出てません。

f:id:tanaka0:20190426090828p:plain

こんな感じで出して使う。

f:id:tanaka0:20190426090850p:plain

テスト作成したプログラム載せときます。
フォームはモードレスで動かす予定。

Private Sub UserForm_Initialize()
    
    With ListView1
        .View = lvwReport 'コントロールの見た目
        .LabelEdit = lvwManual '選択時の編集可否設定
        .HideSelection = False '選択状態維持
        .AllowColumnReorder = True '列幅変更可
        .FullRowSelect = True '行全体選択
        .Gridlines = True '枠線表示
        
        .ColumnHeaders.Add , "_No", "No", 30
        .ColumnHeaders.Add , "_Name", "名前", 80
        .ColumnHeaders.Add , "_Bango", "番号", 110
        .ColumnHeaders.Add , "_Birth", "生年月日", 100
        .ColumnHeaders.Add , "_Keitou", "得意技", 80
        
        With .ListItems.Add
            .Text = 1
            .SubItems(1) = "山田太郎"
            .SubItems(2) = "1234567890"
            .SubItems(3) = "2019/04/26"
            .SubItems(4) = "右投右打"
        End With
        
        With .ListItems.Add
            .Text = 2
            .SubItems(1) = "1"
            .SubItems(2) = "2"
            .SubItems(3) = "3"
            .SubItems(4) = "4"
        End With
        
    End With
    
    With ComboBox1
        .AddItem "名前"
        .AddItem "番号"
        .AddItem "生年月日"
        .AddItem "得意技"
        .ListIndex = 1 '初期選択
        .Style = fmStyleDropDownList '編集不可
    End With
    
End Sub

Private Sub ListView1_DblClick()
    'ListViewをダブルクリックしたときに出力するデータを確認
    Dim iCmb As Integer
    Dim outputTxt As String
    iCmb = ComboBox1.ListIndex + 1
    outputTxt = ListView1.SelectedItem.SubItems(iCmb)
    Selection = outputTxt
End Sub