スポンサーサイト

上記の広告は1ヶ月以上更新のないブログに表示されています。
新しい記事を書く事で広告が消せます。
[ --/--/-- --:-- ] スポンサー広告 | TB(-) | CM(-)

【Excel VBA】ListBox、ListViewで各項目ごとに色を変える方法(その2)

その1からの続き

★「ListView」を利用したサンプルコード。


例題)
 ワークシートに設定したフォントカラーをリストビューの各項目にも同じカラーを設定して表示したい。


20141020-010.png


まず、ユーザーフォームの「UserForm1」を追加し、その上にリストビューの「ListView1」を追加した"フォーム"を作成する。

20141020-007.png

この状態で標準モジュールに以下のコードを入力。


Sub ShowListView()
  Dim rng   As Range
  Dim i    As Long
  Dim j    As Long

  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

    'データの登録
    For i = 2 To rng.Rows.Count
      .ListItems.Add.Text = rng(i, 1).Value
      For j = 2 To rng.Columns.Count
        .ListItems(i - 1).SubItems(j - 1) = rng(i, j).Value
        .ListItems(i - 1).ListSubItems(j - 1).ForeColor _
          = rng(i, j).Font.Color
      Next
    Next
  End With

  UserForm1.Show
End Sub


実行するとユーザーフォームが表示され、セルに設定された各項目のフォントカラーが反映されているのが確認できる。
20141020-008.png


●ポイント
・表データの一番左項目は"ListItems()"、二番目以降は"ListItems().SubItems()"で表す。
20141020-009.png

・"ForeColor"で文字色を変更する。"ForeColor"プロパティは"SubItems"ではなく、"ListSubItems"に存在する。

●注意点
WndowsUpdateを定期的に行っているとエラー表示が出るようになる場合が過去にあったようです。
ListViewを使用したエクセルを配布する場合は要注意。
スポンサーサイト
[ 2014/10/20 18:04 ] その他 | TB(0) | CM(0)
コメントの投稿












管理者にだけ表示を許可する
トラックバック
この記事のトラックバックURL

プロフィール

いけぢー

Author:いけぢー
備忘録がメインです。
あとは思いついた内容など。

カレンダー
03 | 2017/04 | 05
- - - - - - 1
2 3 4 5 6 7 8
9 10 11 12 13 14 15
16 17 18 19 20 21 22
23 24 25 26 27 28 29
30 - - - - - -
アクセスカウンター
押さないでください


上記広告は1ヶ月以上更新のないブログに表示されています。新しい記事を書くことで広告を消せます。