【本日のミッション】
エクセル VBAのListViewオブジェクト の ColumnHeaders コレクションを解明せよ。
ミッションの概要
エクセル VBAのListViewオブジェクト の ColumnHeaders コレクションを解明せよ、というのが今回のミッションです。
プロシージャ
ColumnHeaders コレクションの表示を確認するために、下記プロシージャをサンプルとして使用します。
(その他のコードの内容につきましては、エクセル VBA ListViewにドラッグ&ドロップでファイル名・ファイルパス複数の情報を取得(Excel VBA)をご参照ください。
ファイルをドラッグ&ドロップすると、ファイル名、ファイルパスを取得するコードになります。
Private Sub UserForm_Initialize() With ListView1 '■プロパティ設定 .FullRowSelect = True '行全体の選択 .Gridlines = True '行列グリッド線の表示 .LabelEdit = lvwManual 'ラベル編集不可 .OLEDropMode = ccOLEDropManual 'ファイルドロップ処理を行う .View = lvwReport '表示形式 詳細表示 '■列見出しの名前・列幅の設定 .ColumnHeaders.Add , "key1", "1列目", 120, lvwColumnLeft .ColumnHeaders.Add , "key2", "2列目", 220, lvwColumnLeft End With End Sub Private Sub ListView1_OLEDragDrop(Data As MSComctlLib.DataObject, Effect As Long, Button As Integer, Shift As Integer, x As Single, y As Single) '【変数】 Dim i As Long 'カウンター Dim fileCount As Long 'ファイル数 With ListView1 '■既存ファイル名のクリア .ListItems.Clear '■ファイル数の取得 fileCount = Data.Files.Count '■ドラッグ&ドロップしたファイル名・ファイルパスを順にリスト化 For i = 1 To fileCount With .ListItems.Add .Text = Dir(Data.Files(i)) 'ファイル名 .SubItems(1) = Data.Files(i) 'ファイルパス End With Next i End With End Sub
ColumnHeaders.Add
ListViewオブジェクトの列見出しを設定します。
ListViewオブジェクト.ColumnHeaders.Add Index, Key, Text, Width, Alignment, Icon
引数 | 内容 | ||||||
Index | 追加する列の位置を指定します。省略すると左から追加されます。 | ||||||
Key | 列見出しを特定するユニークな名前を指定します。 同じ名前を指定すると「実行時エラー ‘35602’: Key is not unique in collection」というエラーが表示されますので、重複しない名前を指定するようにします。 | ||||||
Text | 列見出しに表示する文字列を指定します。 | ||||||
Width | 列見出しの幅を指定します。省略すると均等幅になります。 | ||||||
Alignment | 見出し文字列の位置を指定します。
|
今回は「Index」「Icon」は省略しています。
「Key」は列見出しには表示されません。各列を判別するためのユニークな名前を、裏で持っている状態です。
【参考】
VBA(マクロ)作成の前、リボンに開発タブを表示させる(Excel VBA)
ユーザーフォームの作成方法 準備(Excel VBA)
ユーザーフォームのオブジェクトの名前を「UserForm1」から変更する方法(Excel VBA)
ユーザーフォームの上のバー(タイトルバー)の名前を「UserForm1」から変更する(Excel VBA)
ユーザーフォームのオブジェクトウィンドウとコードウィンドウを表示切替させる方法(Excel VBA)
「オブジェクト名が不正です」を出さないようにユーザーフォームオブジェクト名を命名規則に従って変更(Excel VBA)
エクセルファイルが開いた時にユーザーフォームを表示させる方法(Excel VBA)
エクセル フォームのラベルのテキストを縦書きにする方法(Excel VBA)
エクセル VBA フォーム ツールボックスにListViewコントロールを追加(Excel VBA)
エクセル VBA フォーム「Microsoft ListView Control」が出てこない原因 (Excel VBA)
エクセル VBA ListViewにドラッグ&ドロップでファイルパスを取得(Excel VBA)
エクセル VBA ListViewにスクロールバーを表示させる(Excel VBA)
エクセル VBA ListView の FullRowSelect プロパティとは(Excel VBA)
エクセル VBA ListView の Gridlines プロパティとは(Excel VBA)
エクセル VBA ListView の LabelEdit プロパティとは(Excel VBA)
エクセル VBA ListView の OLEDropMode プロパティとは(Excel VBA)
エクセル VBA ListView の View プロパティ とは(Excel VBA)
エクセル VBA ListView の ColumnHeaders コレクションとは(Excel VBA)
エクセル VBA ListViewにドラッグ&ドロップでファイル名・ファイルパス複数の情報を取得(Excel VBA)
エクセル VBA ListViewのListItems・SubItemsコレクションとは(Excel VBA)
エクセル VBA ListView の OLEDragDropイベントとは(Excel VBA)