スプレッドシートの列の 1 つで与えられた結果に基づいて、スプレッドシートに色を付けようとしています。私は次のコードを使用しています:
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
残念ながら、これは「CORRECT」または「INCORRECT」を含むセルのみに色を付けます。それらが入っている行まで拡張したい (たとえば、B12 に "CORRECT" が含まれている場合、A12:G12 をすべて緑色にしたい)。式を使用するように提案されたので、次のコードを試しました。
.FormatConditions.Add(Type:=XlFormatConditionType.xlExpression, Formula1:="=B" & row & "= ""CORRECT"")")
.FormatConditions(1).Interior.ColorIndex = 4
ただし、これは E_INVALIDARG 例外を返します。これを修正する方法についてのヒントをいただければ幸いです。また、何千もの行があるため、すべての行をループして一度に 1 つずつチェックすることは実際にはオプションではないことに注意してください。