[[20150302171354]] 『A列の情報を結合&色付けしたい』(hoge) ページの最後に飛ぶ

[ 初めての方へ | 一覧(最新更新順) | 全文検索 | 過去ログ ]

 

『A列の情報を結合&色付けしたい』(hoge)

よろしくお願いします。

早速ですが、A列B列に入っているデータをキレイに見せたいため、
下記を検討しておりますが、実装方法が分かりません。

■やりたいこと
 ?@ 情報が格納されているのは、A列、B列に対し、同じグループ名は結合。
 ?A グループが変わるタイミング(行)で、行の色を変更したい。

|   A列   |   B列   |
―――――――――――――――――
| グループA   |  tanaka   |
―――――――――――――――――
| グループA   |  satoh   |
―――――――――――――――――
| グループA   |  itoh     |
―――――――――――――――――
| グループB   |  mita    |
―――――――――――――――――
| グループB   |  yoshida |
―――――――――――――――――
| グループC   |  kitami   |
―――――――――――――――――
| グループC   |  osada   |
―――――――――――――――――

↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓

|   A列   |   B列   |
―――――――――――――――――
|         |  tanaka   |
         ――――――――
| グループA  |  satoh   |  ←水色
         ――――――――
|         |  itoh   |
―――――――――――――――――
|         |  mita   |
  グループB   ――――――――  ←薄いグレー
|         |  yoshida   |
―――――――――――――――――
|         |  kitami   |
  グループC   ――――――――  ←水色
|         |  osada   |
――――――――――――――――――

以上、宜しくお願いします。

< 使用 Excel:Excel2010、使用 OS:Windows7 >


 一例です。

 Sub test()
    Dim f As Range
    Dim c As Range
    Dim old As String
    Dim flag As Boolean

    Application.DisplayAlerts = False

    Columns("B").Interior.ColorIndex = xlNone

    For Each c In Range("A1", Range("A" & Rows.Count).End(xlUp).Offset(1))
        If c.Value <> old Then
            If c.Row = 1 Then
                Set f = c
            Else
                flag = Not flag
                Range(f, c.Offset(-1)).Offset(, 1).Interior.Color = IIf(flag, vbCyan, 14277081)
                Range(f, c.Offset(-1)).Merge
                Set f = c
            End If
            old = c.Value
        End If
    Next

 End Sub

(β) 2015/03/02(月) 20:34


βさん

ありがとうございます。

完璧です。
理想通りでした。

参考にさせていただきます。
(hoge) 2015/03/03(火) 11:20


コメント返信:

[ 一覧(最新更新順) ]


YukiWiki 1.6.7 Copyright (C) 2000,2001 by Hiroshi Yuki. Modified by kazu.