例によって、UserFormのInitializeイベントで、LisetViewコントロールを初期化しましょう。
Private Sub UserForm_Initialize() With ListView1 .View = lvwReport ''表示 .LabelEdit = lvwManual ''ラベルの編集 .HideSelection = False ''選択の自動解除 .AllowColumnReorder = True ''列幅の変更を許可 .FullRowSelect = True ''行全体を選択 .Gridlines = True ''グリッド線 End With End Sub
Viewプロパティは、ListViewコントロールの外観を指定します。ListViewコントロールは、エクスプローラでファイルの一覧が表示される右側のように、大きいアイコンで表示したり、詳細なデータを表示したり、表形式でリスト表示などが行えます。もっとも、登録するデータはどれも共通で、見せ方を変えているに過ぎません。その見せ方を指定するのがViewプロパティなのです。
Viewプロパティに指定できる定数は「lvwIcon」「lvwList」「lvwReport」「lvwSmallIcon」の4つです。どれも、名前から想像できますよね。ここでは「lvwReport」を指定した表形式の使い方を解説します。データの登録や削除などの基本は同じです。
LabelEditプロパティには「lvwAutomatic」と「lvwManual」を指定できます。これは、左端の項目を、選択しただけで編集可能な状態にするかどうかを決めるプロパティです。「lvwAutomatic」を指定すると、選択しただけで編集可能になります。そうではなく、たとえば[F2]キーを押したら項目名を編集したい…なんてときは「lvwManual」を指定します。
HideSelectionプロパティは、ListViewコントロールから別のコントロールにフォーカスが移動したとき、ListViewコントロールの選択状態を解除するかどうかを指定します。別のコントロールにフォーカスが移動しても、グレイで選択されていた方が見栄えがいいですから、ここではFalseを設定しました。
AllowColumnReorderプロパティにTrueを設定すると、実行中にユーザーが列幅をマウス操作で変更できます。Excelのように境界線をダブルクリックすると、その列に入力されているデータの最大幅に合わせて列幅が自動調整されます。ただし、列見出しをクリックしてソートするには、それようのコードを自分で書かなければなりません。
FullRowSelectプロパティにTrueを設定すると、行全体が選択されるようになります。
Gridlinesプロパティは枠線(グリッド線)を表示するかどうかを指定します。
以上の初期化処理で実行すると、次のようになります。
まだ、パッとしませんね(^^;