ListViewは、複数のデータを一覧表示するのに便利なコントロールです。例えば、クラス内メンバーの名前や成績を一覧表示するときに役立ちます。
ListViewをフォームに追加する
①Excelを開く
Excelを開いたら、開発タブから「VBAエディター」を開きます。ショートカットキーは Alt + F11 です。
②ユーザーフォームの作成
「挿入」→「ユーザーフォーム」で、新しいフォームを作成します。
③ListViewをフォームに追加
ツールボックスにListViewはデフォルトで表示されていないことが多いので、まずは「追加ツール」をクリックし、「Microsoft ListView Control」を選びます。これでフォームにListViewが追加できるようになります。フォームにドラッグ&ドロップして配置します。
ListViewにデータを追加する
(例1)ListViewにデータを追加するVBAコード(基本)
' ListViewの列の設定
With ListView1
.View = lvwReport ' 詳細表示モード
.FullRowSelect = True ' 行全体を選択
' 列の追加
.ColumnHeaders.Add , , "番号", 50
.ColumnHeaders.Add , , "名前", 100
.ColumnHeaders.Add , , "成績", 50
End With
' データの追加
Call AddData("1", "山田 太郎", "85")
Call AddData("2", "鈴木 花子", "92")
Call AddData("3", "田中 一郎", "78")
End Sub
With ListView1.ListItems.Add
.Text = 番号
.SubItems(1) = 名前
.SubItems(2) = 成績
End With
End Sub
上記のプログラムは、ListViewの設定をlvwReportに設定して、詳細表示(表形式)を有効にします。また、FullRowSelectをTrueに設定することで、行全体が選択されるようにします。ColumnHeaders.Addでは、ListViewに「番号」「名前」「成績」の3列を追加しています。AddDataというサブルーチンを作成し、番号、名前、成績のデータをListViewに追加しています。
(例2)ListViewにデータを追加するVBAコード(応用)
Dim 選択行 As ListItem
Set 選択行 = ListView1.SelectedItem
MsgBox "選択された生徒: " & 選択行.SubItems(1)
End Sub
上記のプログラムでは、ListViewで選択された行の名前をメッセージボックスで表示します。実際にクリックしてみると、生徒の名前が表示されます。このように、ListViewにもっと多くのデータを追加したり、選択されたデータを取得する方法もあります。
まとめ
ListViewは、多くのデータを見やすく整理して表示するのにとても役立ちます。クラスの名簿や成績表など、様々な場面で活用できるので、是非活用してください。