![](http://oshiete.xgoo.jp/images/v2/pc/qa/question_title.png?e8efa67)
Excelにて、ファイル内の複数シートでの重複データーへ色を付けるVBAコードを
ご教授願います。
現在、1シート内の対応は何とかできるのですが、複数シートの場合のコードに苦慮
しております
※対象ファイルは、10ほどあり、それぞれシート数も1~5シートでまちまちす。
データーは、A列2行目から入力されています
End Sub
Sub Test() '色を付ける
Dim i As Long, j As Long
For i = 1 To 1000
For j = 1 To 1
If WorksheetFunction.CountIf(Range("A1:C1000"), Cells(i, j)) > 1 Then
Cells(i, j).Interior.ColorIndex = 6
End If
Next j
Next i
End Sub
お分かりになる方がおられましたらご教授願います。
No.3
- 回答日時:
No.2です。
結局すべてのシートが対象になるわけですね。
各シートともA列2行目以降を対象としています。
標準モジュールにしてください。
Sub Sample2()
Dim myDic As Object
Dim i As Long, k As Long
Dim lastRow As Long
Dim myStr As String
Dim myR
Set myDic = CreateObject("Scripting.Dictionary")
'//▼各シートのA列データを重複なしに一旦登録//
For k = 1 To Worksheets.Count
With Worksheets(k)
lastRow = .Cells(Rows.Count, "A").End(xlUp).Row
myR = Range(.Cells(2, "A"), .Cells(lastRow, "A")) '//←各シートのA列2行目~最終行まで//
For i = 1 To UBound(myR, 1)
If Not myDic.exists(myR(i, 1)) Then
myDic.Add myR(i, 1), 1
Else
myDic(myR(i, 1)) = myDic(myR(i, 1)) + 1
End If
Next i
End With
Next k
'//▼ココから操作//
For k = 1 To Worksheets.Count
With Worksheets(k)
For i = 2 To .Cells(Rows.Count, "A").End(xlUp).Row
myStr = .Cells(i, "A")
If myDic(myStr) > 1 Then
.Cells(i, "A").Interior.ColorIndex = 6
Else
.Cells(i, "A").Interior.ColorIndex = xlNone
End If
Next i
End With
Next k
Set myDic = Nothing
MsgBox "完了"
End Sub
こんな感じではどうでしょうか?m(_ _)m
No.2
- 回答日時:
こんにちは!
横からお邪魔します。
各シートごとのA列に重複データに重複するデータがあるセルに色を付けたい!というコトですかね。
一例です。
Sub Sample1()
Dim i As Long, k As Long
For k = 1 To Worksheets.Count
With Worksheets(k)
For i = 2 To .Cells(Rows.Count, "A").End(xlUp).Row
If WorksheetFunction.CountIf(.Range("A:A"), .Cells(i, "A")) > 1 Then
.Cells(i, "A").Interior.ColorIndex = 6
Else
.Cells(i, "A").Interior.ColorIndex = xlNone
End If
Next i
End With
Next k
End Sub
こんな感じではどうでしょうか?
※ そのシートに重複はなくても別シートに同じデータがある場合に色を付ける!
という意味であれば当然コードも変わってきます。
的外れならごめんなさい。m(_ _)m
No.1
- 回答日時:
こんな感じ?
Sub Test()
Dim i As Long, j As Long
Dim ws As Worksheet
Dim c As Long
For i = 1 To 10
For j = 1 To 1
c = 0
For Each ws In Worksheets
c = c + WorksheetFunction.CountIf(ws.Cells, Cells(i, j))
Next ws
If c > 1 Then
Cells(i, j).Interior.ColorIndex = 6
End If
Next j
Next i
End Sub
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
似たような質問が見つかりました
- Visual Basic(VBA) 複数シートの複数列に入力されているデータを重複なしで抽出するVBAを作りたいです。 9 2022/06/17 10:33
- Visual Basic(VBA) 複数csvを横に追加していくマクロについて 2 2023/04/25 09:19
- Excel(エクセル) Excel VBAどこが間違ってますか? 4 2023/07/17 10:04
- Visual Basic(VBA) セルの値からファイルを複数作りたい2 3 2022/10/07 15:54
- Visual Basic(VBA) VBA Userformで一部別シートに転記がしたいのですが 2 2023/05/24 13:08
- Visual Basic(VBA) いつもお世話になっております、VBAで教えて頂きたいのですが 2 2022/05/05 22:20
- Visual Basic(VBA) コード名シートA列と集計シートA列のコードが一致したら、コード名シートA5からk12の範囲をコピーし 1 2022/08/29 23:46
- Visual Basic(VBA) ExcelのVBAコードについて教えてください。 2 2022/05/26 17:19
- Visual Basic(VBA) 改行ごとに行を追加し、数量を分割 4 2023/07/11 16:39
- Visual Basic(VBA) 別シートのデータを参照して値を入れたい。 まとめデータシートのC列D列の値を商品一覧シートのコードが 7 2022/08/17 13:20
関連するカテゴリからQ&Aを探す
おすすめ情報
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
マクロのコードを教えてください。
-
エクセルの保護で、列の表示や...
-
文字の色も参照 VLOOKUP
-
【条件付き書式】countifsで複...
-
ExcelのVlookup関数の制限について
-
エクセル マクロ 標準モジュー...
-
VBAで繰り返しコピーしながら下...
-
エクセルで、チェックボックス...
-
【VBA】複数のシートの指定した...
-
Excel複数シートにあるデータを...
-
【VBA】シート名と見出しが一致...
-
エクセル複数シートのデータを...
-
【VBA】ピボットテーブルを既存...
-
エクセル 複数行にまたがって...
-
エクセルで横並びの複数データ...
-
別シートに成約をボタン1つで転...
-
スプレッドシートでindexとIMPO...
-
Excelにて、ファイル内の複数シ...
-
Excelで全てのシートに一気に列...
-
エクセルの列の限界は255列以上...
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
文字の色も参照 VLOOKUP
-
ExcelのVlookup関数の制限について
-
エクセルの保護で、列の表示や...
-
VBAで繰り返しコピーしながら下...
-
Excel の複数シートの列幅を同...
-
Excel複数シートにあるデータを...
-
エクセルの列の限界は255列以上...
-
【条件付き書式】countifsで複...
-
エクセル マクロ 標準モジュー...
-
Excelでの並べ替えを全シートま...
-
SUMPRODUCTにて別シートのデー...
-
エクセルで、チェックボックス...
-
スプレッドシートでindexとIMPO...
-
VLOOKアップ関数の結果の...
-
Excel VBA ピボットテーブルに...
-
エクセルで横並びの複数データ...
-
Excelに自動で行の増減をしたい...
-
【VBA】ピボットテーブルを既存...
-
【VBA】複数のシートの指定した...
-
オートフィルタ使用時にCOUNTIF...
おすすめ情報
Iいつも大変お世話になっております。
今回確認したファイルは、シート4つあります。
すみません。説明不足でした
データーが10個ではなく今回処理をしたいファイル数が10ファイルあるという事で、
データーは、常に200以上A2から下へ入力されています。
For i = 1 To 10 ⇒変更 For i = 1 To 300にして、
実施してみた所、開いているシート(カソールがあるシート)のみが色が付き、他の3シート
データーには、色がつきません、また、空セルにも色がついてしまいます。
説明不足で、すみませんでした
対応して頂きありがとうございます
説明がうまくできず誠にすみません
下記内容がやりたかったことです。
※ そのシートに重複はなくても別シートに同じデータがある場合に色を付ける
説明不足で、すみません
早々のありがとうございます。
説明不足でたびたびすみません
A列2行目以降のセルには、データーがない空セルがあり、
実行した所、空セルも色がついてしまう状況です。できれば
空セルは対象外にすることはできないでしょうか
忙しい中、対応して頂き感謝しております。