色分けする必要のあるユーザー出力を含む(非常に大きな)スプレッドシートを生成するアプリケーションがあります。データを生成すると、色付けする必要のあるブロックが見つかりますが、一度に1ブロックずつ色付けすると、色付けに時間がかかります。私がやりたいのは、セルの大きな非連続グループを維持し、1回のExcel相互運用機能呼び出しを使用して色を付けることです。
現在、各色の範囲を維持しており、その色を必要とする新しいブロックを見つけるたびに、既存の範囲と新しいブロックの和集合を取得します。そして最後にその範囲に色を付けます。残念ながら、これは非常に遅く、大規模なケースではバグのようなものです。これを行うためのより良い方法はありますか?数千個のセルを着色するのにこれほど長くはかからないような気がします。:)
編集 次のコードは、条件付き書式でそれを解決しました(CORRECTおよびINCORRECTという単語が列Bに存在すると仮定します)
With newSheet.Range("B:B")
.FormatConditions.Add(Excel.XlFormatConditionType.xlCellValue, Excel.XlFormatConditionOperator.xlEqual, "CORRECT")
.FormatConditions(1).Interior.ColorIndex = 4
.FormatConditions.Add(Excel.XlFormatConditionType.xlCellValue, Excel.XlFormatConditionOperator.xlEqual, "INCORRECT")
.FormatConditions(2).Interior.ColorIndex = 3
End With
私がまだやりたいのは、「正しい」を含むセルだけではない色だけです。代わりに、グラフの行全体に色を付けたいと思います(たとえば、B42に「CORRECT」が含まれている場合は、A42:H42(それを含む行)を緑色にします)。それを行うためのヒントはありますか?