あるセルの文字列と一致するセルに色付け

実現したいこと

データ量の増加に伴い、現在使用しているものでは動作が重く高速化したい。

前提

A列の文字列とC列の文字列が一致した場合、そのセル(C列)に色付けをしたいです。(完全一致)
もともと多くて100行前後のデータ量だったので問題なかったのですが、
20万行を超えるデータを扱うことになり大変困っております。。
イメージ説明

発生している問題・エラーメッセージ

データ量が多く、処理に20時間以上かかってしまう。

該当のソースコード

Sub Sample1() Dim i As Long, k As Long, myStr As String Dim myFound As Range, myFirst As Range For i = 2 To Cells(Rows.Count, "A").End(xlUp).Row myStr = Cells(i, "A") Set myFound = Range("C:C").Find(what:=myStr, LookIn:=xlValues, lookat:=xlWhole) If Not myFound Is Nothing Then Set myFirst = myFound GoTo 処理 Do Set myFound = Range("C:C").FindNext(after:=myFound) If myFound.Address = myFirst.Address Then Exit Do GoTo 処理 処理: For k = 1 To Len(myFound) If Mid(myFound, k, Len(myStr)) = myStr Then myFound.Characters(Start:=k, Length:=Len(myStr)).Font.ColorIndex = 3 End If Next k Loop End If Next i End Sub

試したこと

配列を使えばよいのかとは思うのですが、当方配列に関する知識が浅く。。。

補足情報(FW/ツールのバージョンなど)

ご参考までに、A列は1万行、C列は20万行ほどあります。

コメントを投稿

0 コメント