8

値が別の列の値と同じでない場合、セルのテキストに色を適用する必要があります。そのための最良のアプローチは何ですか?私が考えることができる方法はかなり高価です。

 for (int i = 0; i < ColumnARange.Cells.Count; i++)
                    {
                        if (ColumnARange.Cells[i, 1] != ColumnBRange.Cells[i, 1])
                        {
                            Range currCell = ColumnBRange.Cells[i, 1];
                            currCell.Font.Color = System.Drawing.ColorTranslator.ToOle(System.Drawing.Color.Red);
                        }
                    }

以下のように条件付き書式を試してみましたが、無駄でした。

FormatCondition cond = ColumnBRange.FormatConditions.Add(XlFormatConditionType.xlCellValue, XlFormatConditionOperator.xlNotEqual, ColumnARange);
                cond.Font.Color = System.Drawing.ColorTranslator.ToOle(System.Drawing.Color.Red);

私はVSTO、C#を使用しています

4

3 に答える 3

9

次のコードは、D1 から E10 のセル範囲に条件付き書式を追加します。

値 D1 = E1 または D2 = E2 をそれぞれ比較します。FormatCondition オブジェクトでフォントの色または塗りつぶしを設定できます。

FormatCondition format =(FormatCondition)( targetSheet.get_Range("D1:E10",
                Type.Missing).FormatConditions.Add(XlFormatConditionType.xlExpression,
                                                   XlFormatConditionOperator.xlEqual,
                                                   "=$D1=$E1", 
                                                   Type.Missing, Type.Missing, Type.Missing,
                                                   Type.Missing, Type.Missing));
            
            format.Font.Bold = true;
            format.Font.Color = 0x000000FF;
于 2012-04-20T07:17:41.943 に答える
1

これを試して

FormatCondition cond = ColumnBRange.FormatConditions.Add(XlFormatConditionType.xlCellValue, XlFormatConditionOperator.xlNotEqual, "=$B1");
                cond.Font.Color = System.Drawing.ColorTranslator.ToOle(System.Drawing.Color.Red);
于 2014-09-08T12:27:14.693 に答える