ACCESSのVBAでリストビュー(ListView)を使う為の設定 | Office365
ACCESSでListView(リストビュー)コントロールを使う
標準のコントロールにはListView(リストビュー)は無い
ACCESSでフォームをデザインする場合には、リストビュー(ListView)に変わる、表型のフォームをサブフォームとして使うことで賄えてしまう為、わざわざListViewを利用する機会も少ないのだけれども、ListViewでデザインする必要がある場合には、最初にコントロールの参照設定が必要である。
ACCESSのリボン.コントロールから、上図のようなボタンを押下する。
ACTIVEXコントロールを選択する。
参照設定から[Microsoft ListView Control, version 6.0]を選択すると、フォームのデザイン画面にコントロールが貼り付けされる。
VBAでリストビューを使う時は、注意が必要だ。
インテリセンスを使ってコーディングをする時代だが、捨て去られるVBA(VB6系)プログラムのリストビューは、インテリセンスに候補が表示されないメソッドが殆どだ。
コードのサンプル
With Me!ListView
.ColumnHeaders.Clear
.ListItems.Clear
.View = lvwReport
.FullRowSelect = True
.GridLines = True
With .ColumnHeaders
.Add , , "商品コード"
.Add , , "商品名"
.Add , , "在庫数"
End With
.ColumnHeaders(2).Width = 3000
Dim itm As ListItem
Set itm = ListView.ListItems.Add(, , "1000000")
itm.SubItems(1) = "商品A"
itm.SubItems(2) = "900"
Set itm = ListView.ListItems.Add(, , "1000001")
itm.SubItems(1) = "商品B"
itm.SubItems(2) = "901"
End With
実際、EXCELや、WordのVBA以外では、ListViewをわざわざ使う意味も無いのだけれども、ListViewを使うメリットもある。
ACCESSでサブフォームで表を入れ子にしてデザインせず、ListViewを使うメリットは、リストビューを使っておくと、ExcelやWordへ移植する際に、わざわざプログラムし直す必要が無くなるという事だ。
ただ、リストビューが必要な位だったら、.NETでプログラミングした方が実際は楽なんだけれども、これでわざわざプログラミングしている諸君は恐らく、ライセンス費用に頭を抱えているからだろうけれど...