1

色分けする必要のあるユーザー出力を含む(非常に大きな)スプレッドシートを生成するアプリケーションがあります。データを生成すると、色付けする必要のあるブロックが見つかりますが、一度に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(それを含む行)を緑色にします)。それを行うためのヒントはありますか?

4

1 に答える 1

0

条件付き書式を使用できます。

同じ行の色付けセルについては、数式の条件付き書式を使用する必要があります。たとえば、列A、C、およびDをEの値に基づいて条件付きでフォーマットする場合は、次のように実行できます(擬似コード)。

現在の行の列A、C、およびDの場合、条件付き書式を式に設定します:列$Eと現在の行に基づく述語

これはおそらく次のようなものに変換されます。

=IF($Erow=something, 1, 0)

http://msdn.microsoft.com/en-us/library/office/ff822801.aspx

また、もともと条件付き書式を提案するとき、私は手動でそれを行うことについて話していました。このタスクにVBAを使用する必要がある理由はありますか?

于 2012-11-05T17:59:18.390 に答える