• 締切済み

【VBA】特定の範囲で同じ値を含むセルの色を変える

Excelのマクロに関して質問です。 特定の範囲(複数行と複数列)内で重複した値(セル内の最初の4文字が同じもの)を含むセルに色をたいです。 さらに、重複した値ごとに色分けをしたいです。例えば重複した値[1111]と重複した値[1112]の時では、前者が赤色で後者は青色、更に他の重複する値はまた他の色でというように、 要どのセルとセルが重複しているか色分けをして一目瞭然にしたいです。 ※なお特定の範囲は以下の変数を利用します。 dataRow = Workbooks(booksName).Worksheets(sheetsName).Range("A2").End(xlDown).Row 'データの入っている最終行を取得 dataColum = Workbooks(booksName).Worksheets(sheetsName).Range("A1").End(xlToRight).Column 'データの入っている最終列を取得 どなたか知恵をお貸し下さい。よろしくお願いします。

みんなの回答

  • jin34
  • ベストアンサー率80% (17/21)
回答No.1

こんな感じですかね。 範囲内の各セルについて、値の重複があるかないかを調べ、あれば今度はその値を持つセルを検索して色塗りするという流れです。 ColorIndexプロパティを使っているので使用する色番号の値は3~56です。 56に到達するとエラー回避のため次は3に戻るよう組んであります。 Sub 色塗り() Dim myrng As Range, myrng2 As Range, myrng3 As Range Dim i As Integer Set myrng = Sheets("sheetsName").UsedRange i = 2 '色番号の初期値 For Each myrng2 In myrng If WorksheetFunction.CountIf(myrng, myrng2.Value) > 1 And _ myrng2.Interior.ColorIndex <> 0 Then If i = 56 Then i = 2 i = i + 1 For Each myrng3 In myrng If myrng3.Value = myrng2.Value Then myrng3.Interior.ColorIndex = i End If Next End If Next End Sub()

参考URL:
http://www.relief.jp/itnote/archives/000482.php

関連するQ&A

専門家に質問してみよう