久しぶりに、エクセルのマクロでVBAを使う。
●リストビューで学んだことをメモ
○入門資料 Office TANAKA リストビュー
○リストビューのコントロールへの組み込み
○リストビューに配列からデータをセット
○選択した行を編集
○選択した行を削除
○選択した行の番号を取得
○コードから行を選択する
●リストビューで学んだことをメモ
○入門資料 Office TANAKA リストビュー
http://officetanaka.net/excel/vba/listview/index.htm
○リストビューのコントロールへの組み込み
- エクセルのメニューから[ツール] - [マクロ] - [Visual Basic Editor]選択
- VBEのメニューで[表示]-[ツールボックス]で、ツールボックスを表示
- ツールボックスの余白を右クリックして[その他のコントロール]を選択
- [コントロールの追加]ダイアログボックスが開く
- 「Microsoft ListView Control 6.0(SP4)」のチェックをオンにする。
' 3列にする場合
With ListView1
.View = lvwReport
.LabelEdit = lvwManual 'ラベルの編集
.HideSelection = False '選択の自動解除
.AllowColumnReorder = True '列幅の変更を許可
.FullRowSelect = True '行全体を選択
.Gridlines = True 'グリッド線
.ColumnHeaders.Add , "_Name", "氏名", 80
.ColumnHeaders.Add , "_Yomi", "読み", 120
.ColumnHeaders.Add , "_Address", "住所", 200
End With
With ListView1
.View = lvwReport
.LabelEdit = lvwManual 'ラベルの編集
.HideSelection = False '選択の自動解除
.AllowColumnReorder = True '列幅の変更を許可
.FullRowSelect = True '行全体を選択
.Gridlines = True 'グリッド線
.ColumnHeaders.Add , "_Name", "氏名", 80
.ColumnHeaders.Add , "_Yomi", "読み", 120
.ColumnHeaders.Add , "_Address", "住所", 200
End With
○リストビューに配列からデータをセット
For i = 1 To num
With ListView1
With .ListItems.Add
.Text = name(i)
.SubItems(1) = yomi(i)
.SubItems(2) = address(i)
End With
End With
Next
With ListView1
With .ListItems.Add
.Text = name(i)
.SubItems(1) = yomi(i)
.SubItems(2) = address(i)
End With
End With
Next
○選択した行を編集
' テキストボックスからデータを得る場合
With ListView1
.SelectedItem = TbxName.Text
.SelectedItem.SubItems(1) = TbxYomi.Text
.SelectedItem.SubItems(2) = TbxAddress.Text
End With
With ListView1
.SelectedItem = TbxName.Text
.SelectedItem.SubItems(1) = TbxYomi.Text
.SelectedItem.SubItems(2) = TbxAddress.Text
End With
○選択した行を削除
ListView1.ListItems.Remove .SelectedItem.Index
○選択した行の番号を取得
n = ListView1.SelectedItem.Index
○コードから行を選択する
ListView1.ListItems(n).Selected = True