条件付き書式の色を取得 | スヌーピーとジャンサン

スヌーピーとジャンサン

ある日突然、事務所にやってきたスヌーピーとジャンサンのブログです。
毎月一日には必ず吉備津神社にスヌーピーとお参りをしています。
22世紀にも吉備津神社を今と変わらず残したい・・・。

ジャンサンがはまっていたじょ。

エクセルVBAでセルの色の取得だから、てっきり

Cells(irTarget.Row, irTarget.Clm).Interior.Color

で大丈夫と思っていたら、

例のこれだじょ。

16777215  無色しか取得できない。

条件付き書式のセルの色の取得は、これではダメだったじょ。

はまった。

調べると、条件付書式の再評価をVBAでしてとかあるけど、面倒だじょ。

だいたい、世界一短いプログラムを書くジャンサンはしたくない。

そこで、発見したのがDisplayFormatだったじょ。

これで取得できたじょ。

気がつけば簡単だけど、たぶん世界一の技だと思う。

うんうん。

Private Sub Worksheet_Change(ByVal irTarget As Range)
 
    Dim dColor As Double
    Dim lnColorIndex As Long
    dColor = 0
    lnColorIndex = 0

  '条件付き書式の色を取得し、実測値に設定(条件付き書式のセルの色と単なるセルの色は別もの)
     dColor = Cells(irTarget.Row, irTarget.Clm).DisplayFormat.Interior.Color
     lnColorIndex = Cells(irTarget.Row, irTarget.Clm).DisplayFormat.Interior.ColorIndex

End Sub