構文
構文は以下の通りです。
Dim 一覧ビュー As ListView
Set 一覧ビュー = Me.一覧ビュー名
With 一覧ビュー
.View = lvwReport ' 表形式(レポート形式)を設定
.ColumnHeaders.Add , , "列名1", 100 ' 列の追加(列名と幅を指定)
.ColumnHeaders.Add , , "列名2", 100
.ColumnHeaders.Add , , "列名3", 100
' データの追加
Dim 項目 As ListItem
Set 項目 = .ListItems.Add(, , "データ1") ' 1行目の最初の列
項目.SubItems(1) = "データ2" ' 1行目の2列目
項目.SubItems(2) = "データ3" ' 1行目の3列目
End With
Set 一覧ビュー = Me.一覧ビュー名
With 一覧ビュー
.View = lvwReport ' 表形式(レポート形式)を設定
.ColumnHeaders.Add , , "列名1", 100 ' 列の追加(列名と幅を指定)
.ColumnHeaders.Add , , "列名2", 100
.ColumnHeaders.Add , , "列名3", 100
' データの追加
Dim 項目 As ListItem
Set 項目 = .ListItems.Add(, , "データ1") ' 1行目の最初の列
項目.SubItems(1) = "データ2" ' 1行目の2列目
項目.SubItems(2) = "データ3" ' 1行目の3列目
End With
解説
Me.一覧ビュー名は、フォーム上にあるListViewコントロールを指します。.View = lvwReportは、ListViewを表形式で表示する設定です。.ColumnHeaders.Addを使用して、表示する列を追加します。列名と列幅(単位はポイント)を指定します。ListItems.Addを使って最初の列にデータを追加し、項目.SubItemsで2列目以降のデータを追加します。
【ListView.Viewの種類】
定数 | 内容 |
lvwIcon | 各項目が大きなアイコンで表示される形式です。ファイルエクスプローラーの「大アイコン」表示に似ています。 |
lvwSmallIcon | 各項目が小さいアイコンで表示される形式です。ファイルエクスプローラーの「小アイコン」表示に似ています。 |
lvwList | 項目がリスト形式で1列に表示されます。アイコンは小さいサイズで表示され、横方向に並びます。 |
lvwReport | 項目が表形式で表示され、複数の列にデータを表示できます。Excelのセルのような形式です。 |
プログラミング例
具体的なプログラミング例を紹介します。
Dim データ一覧 As ListView
Set データ一覧 = Me.ListView1
With データ一覧
.View = lvwReport
.ColumnHeaders.Add , , "名前", 100
.ColumnHeaders.Add , , "年齢", 50
.ColumnHeaders.Add , , "住所", 150
' 1行目のデータを追加
Dim 一行目 As ListItem
Set 一行目 = .ListItems.Add(, , "田中 太郎")
一行目.SubItems(1) = "10歳"
一行目.SubItems(2) = "東京都"
' 2行目のデータを追加
Set 一行目 = .ListItems.Add(, , "佐藤 花子")
一行目.SubItems(1) = "12歳"
一行目.SubItems(2) = "大阪府"
End With
Set データ一覧 = Me.ListView1
With データ一覧
.View = lvwReport
.ColumnHeaders.Add , , "名前", 100
.ColumnHeaders.Add , , "年齢", 50
.ColumnHeaders.Add , , "住所", 150
' 1行目のデータを追加
Dim 一行目 As ListItem
Set 一行目 = .ListItems.Add(, , "田中 太郎")
一行目.SubItems(1) = "10歳"
一行目.SubItems(2) = "東京都"
' 2行目のデータを追加
Set 一行目 = .ListItems.Add(, , "佐藤 花子")
一行目.SubItems(1) = "12歳"
一行目.SubItems(2) = "大阪府"
End With
上記のプログラムは、ListViewコントロールの変数としてデータ一覧を使用しています。名前、年齢、住所の3つの列を追加し、各列の幅も指定しています。2人分のデータを1行目と2行目に追加し、田中 太郎さんのデータが1行目に、佐藤 花子さんのデータが2行目に表示されます。
まとめ
ListViewを使った表形式表示では、列のヘッダーを定義し、各行にデータを追加することが重要です。ViewをlvwReportに設定することで、レポート形式(表形式)の表示が可能です。各行にデータを追加するには、ListItems.Addを使い、複数列を持つデータを扱う場合はSubItemsで各列に値を設定します。