オンライン健康相談、gooドクター

vba 初心者です。
A1〜E50までにランダムに数字が入力されている表があり、同じ数字(重複)毎にセルに色を設定しようと考えています。
下記のようなコードを考えてみたのですが、重複するセルごとに色を変える方法が分かりません。
アドバイスお願いします。

下のコードはカラーを一色で定義しています。

〜ここから〜
Sub Test()
Dim i As Long, j As Long
For x = 1 To 50
For y = 1 To 5
If WorksheetFunction.CountIf(Range("A1:E50"), Cells(x, y)) > 1 Then
Cells(x, y).Interior.ColorIndex = 10
End If
Next x
Next y
End Sub
〜ここまで〜

gooドクター

A 回答 (5件)

No.4です。



https://www.sejuku.net/blog/32288
を基に初級レベルのコードで申し訳ないですがボケジジィが解釈した内容でのコードです。(何組あるのか不明なので57組以上だとエラーになるでしょう)

Sub megu()
Dim myDic As Object
Dim r As Range, rr As Range
Dim c_cnt As Integer

Set myDic = CreateObject("Scripting.Dictionary")
Set rr = Range("A1:E50")
rr.Interior.ColorIndex = xlNone

c_cnt = 3 '黒と白を避けたため

For Each r In rr
If r.Value <> "" And WorksheetFunction.CountIf(rr, r.Value) > 1 Then
If Not myDic.Exists(r.Value) Then
r.Interior.ColorIndex = c_cnt
myDic.Add r.Value, c_cnt
c_cnt = c_cnt + 1
Else
r.Interior.ColorIndex = myDic(r.Value)
End If
End If
Next

Set rr = Nothing
Set myDic = Nothing

End Sub

ほんと解釈がボケでしたらごめんなさい。
    • good
    • 3

No.3です。



ちなみに色はこんなのもあります。
https://excel-toshokan.com/vba-color-list/
    • good
    • 0

>同じ数字(重複)毎にセルに色を設定しようと考えています。



どの数字の重複に『どのような基準で色を決めようと考えている』のかが必要でしょうね。

もしNo.1さんのように『すべての重複しているセルに対して同じ色を付ける』と言う事であればスル~してください。
ボケジジィな私の解釈が悪かっただけですので。
    • good
    • 0

No.1です。



投稿後気づいたのですが、
お示しのコードでも大丈夫ですが、ただ
Nextの順が違っていますね。

>Next x
>Next y


>Next y
>Next x
にしないとマクロは動かないと思います。
(変数も違いますが、x と y を変数としているという前提です。)m(_ _)m
    • good
    • 0

こんばんは!



わざわざVBAでなくても条件付き書式で対応できそうですが、
VBAをご希望のようなので、一例です。

Sub Sample1()
 Dim c As Range
 Dim myRng As Range
  Set myRng = Range("A1:E50")
   myRng.Interior.ColorIndex = xlNone
    For Each c In myRng
     If WorksheetFunction.CountIf(myRng, c) > 1 Then
      c.Interior.ColorIndex = 10
     End If
    Next c
End Sub

こんな感じでいけると思います。m(_ _)m
    • good
    • 0

お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!

このQ&Aを見た人はこんなQ&Aも見ています

gooドクター

このQ&Aを見た人がよく見るQ&A

人気Q&Aランキング