ブック間の列を比較し、片方のブックのO列の該当セルより左のセル全てに色を付けたい。

今、2つのExcelのブックがあります。
仮に、
・列比較ブックA
・列比較ブックB
というファイル名だとします。
列比較ブックAのO列には、
----
りんご

ごりら

スパイダー

テクノクラート



アボガド



----
といった文字列が、空白セルを伴い、不規則にセルに6万行ほど記載されております。
そして列比較ブックBのG列には、
----
アボガド
りんご
スパイダー
テクマクマヤコン
後楽園



----
といった文字列が、たまに空白セルもありますが、ほぼぎっしり5000行ほど並んでおります。
この状況におきまして。
列比較ブックBのG列にある文字列が、もし列比較ブックAのO列にあれば。

列比較ブックAのO列の方の該当セルを黄色等で塗りつぶしていただき。
さらに、該当セルより左のセル(A~N列)も、色で塗りつぶしたいのです。

上に挙げた例ですと、列比較ブックAのO列にあるりんご、スパイダー、アボガドが塗りつぶされて、さらに左のセルもすべて塗りつぶされる感じです。
もしそのような処理をマクロで実行可能でしたら、お教えいただけないでしょうか。

回答の条件
  • 1人5回まで
  • 登録:2015/11/15 00:58:39
  • 終了:2015/11/17 05:54:14

ベストアンサー

id:a-kuma3 No.1

a-kuma3回答回数4325ベストアンサー獲得回数17732015/11/15 10:07:30

ポイント1500pt

「列比較ブックA」の方はいくつもあるのだろうと思いますので、「列比較ブックB」のマクロとして書いてみました。

Const MAX_ROW_MASTER = 5000
Const MAX_ROW_DATA = 60000
Const TARGET_DIR = "D:\data\"   ' 対象のブックがあるディレクトリ
Const BG_COLOR_INDEX = 6        ' 黄色


Sub paint_data_sheet()

    datafile = "列比較ブックA.xlsx"

    Set master = CreateObject("Scripting.Dictionary")

    ' マスタの取り込み
    For r = 1 To MAX_ROW_MASTER
        Data = Cells(r, 7).Value
        If Data <> "" Then
            If Not master.exists(Data) Then
                master.Add Data, Data
            End If
        End If
        DoEvents
    Next


    ' データの色付け
    Set book = Workbooks.Open(TARGET_DIR & datafile)
    Set Sheet = book.Sheets(1)
    For r = 1 To MAX_ROW_DATA
        Set Row = Sheet.Rows(r)
        Set cell = Row.Cells(1, 15)
        If cell.Value <> "" Then
            If master.exists(cell.Value) Then
                Row.Range(Cells(1, 1), Cells(1, 15)).Interior.ColorIndex = BG_COLOR_INDEX
            End If
        End If
        DoEvents
    Next

    book.Save
    book.Close
    Set book = Nothing

    Set master = Nothing

End Sub

質問で書かれていなかったことで、以下のことを前提にしています。

  • 色付けをしたいブックがあるディレクトリは固定(選ぶ必要がない)
  • 色付けをするシートは一番目のシート
  • ブックA の O列、ブックB の G列 が空白セルの場合は色塗りの対象外
id:moon-fondu

ありがとうございます、うまく色づけ出来ました!

2015/11/17 05:54:05

コメントはまだありません

この質問への反応(ブックマークコメント)

「あの人に答えてほしい」「この質問はあの人が答えられそう」というときに、回答リクエストを送ってみてましょう。

これ以上回答リクエストを送信することはできません。制限について

絞り込み :
はてなココの「ともだち」を表示します。
回答リクエストを送信したユーザーはいません