回答受付が終了しました

VBAでリストボックス内の値を行ごとに異なる色にして表示したいのですがうまく行きません。イメージとしては行ごとに縞々にしたり、値の文字列によって行の色を変化させたいです。

Visual Basic | Excel1,046閲覧xmlns="http://www.w3.org/2000/svg">250

回答(1件)

ListViewの見本です。 (添付図参照) (下記コードは[http://ikedih.blog69.fc2.com/blog-entry-240.html]を使用しています) Sub ShowListView() Dim rng As Range Dim i As Long Dim j As Long Dim colarr '色パターンの設定 colarr = Array(vbRed, vbBlue, vbGreen) '3色変化の場合 Set rng = ActiveSheet.Cells(1, 1).CurrentRegion With UserForm1.ListView1 '初期化 .View = lvwReport '外観表示指定 .LabelEdit = lvwManual '左端項目の編集設定 .HideSelection = False 'フォーカス移動時の選択解除設定 .AllowColumnReorder = True '列幅の変更有無 .FullRowSelect = True '行全体を選択有無 .Gridlines = True 'グリッド線表示有無 '列見出し For j = 1 To rng.Columns.Count .ColumnHeaders.Add , , rng(1, j).Value Next 'データの登録 Dim x As Long '色変化を示す変数(0が赤,1が青,2が緑) For i = 2 To rng.Rows.Count .ListItems.Add.Text = rng(i, 1).Value If x > 2 Then x = 0 '色は3つしかないので3つを順繰りに使う For j = 2 To rng.Columns.Count .ListItems(i - 1).SubItems(j - 1) = rng(i, j).Value .ListItems(i - 1).ListSubItems(j - 1).ForeColor _ = colarr(x) '色指定 Next x = x + 1 Next End With UserForm1.Show End Sub

画像

NEW! この回答はいかがでしたか? リアクションしてみよう