エクセル VBA ListView の LabelEdit プロパティとは(Excel VBA)

【本日のミッション】

エクセル VBAのListView の LabelEdit の機能を解明せよ。

ミッションの概要

エクセル VBAのListView の LabelEdit の機能を解明せよ、というのが今回のミッションです。

■■■スポンサーリンク■■■

プロシージャ

今回のサンプル UserForm と ListView に下記コードを設定し、LabelEdit の動作を確認します。

(その他のコードの内容につきましては、エクセル VBA ListViewにドラッグ&ドロップでファイルパスを取得(Excel VBA)をご参照ください。

Private Sub UserForm_Initialize()
    With ListView1
        '■プロパティ設定
        .FullRowSelect = True           '行全体の選択
        .Gridlines = True               '行列グリッド線の表示
        .LabelEdit = lvwManual          'ラベル編集不可
'       .LabelEdit = lvwAutomatic       'ラベル編集可
        .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
        '■既存ファイル名のクリア
        If .ListItems.Count > 0 Then
            .ListItems.Clear
        End If

        '■ファイル数の取得
        fileCount = Data.Files.Count

        '■ドラッグ&ドロップしたファイル名・ファイルパスを順にリスト化
        For i = 1 To fileCount
            .ListItems.Add = Dir(Data.Files(i))         'ファイル名
            .ListItems(i).SubItems(1) = Data.Files(i)   'ファイルパス
        Next i
    End With
End Sub
■■■スポンサーリンク■■■

LabelEditプロパティ

ラベル編集の可否を指定します。

lvwManual

ラベル編集不可。
ラベルをクリックしてもラベルを編集することはできません。

ListView1.LabelEdit = lvwManual

lvwAutomatic

ラベル編集可。
ラベルをゆっくり2回クリック(1回目はラベルの選択、2回目はラベルの編集)すると、ラベルを編集することができます。

ListView1.LabelEdit = lvwAutomatic

ラベル編集はListItemsコレクションを編集対象にしています。

今回のように表示形式(View) lvwReport としている場合、ListItemsコレクション1番左の列になります。2列目以降はSubItemsコレクションとなり、ラベル編集対象外になります。

プロパティウィンドウでの設定方法

LabelEditプロパティはプロシージャに記述する以外に、プロパティウィンドウでも設定が可能です。

対象となるListViewを選択した状態で、プロパティウィンドウ(表示されていない場合は、[F4]キーで表示できます。)で LabelEdit lvwManual」または「lvwAutomaticにします。

【参考】

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)

■■■スポンサーリンク■■■