- 締切済み
Excel 条件付き書式で色を変えたセルの数値化に
標記の件で、ご相談です。 Excel 条件付き書式で色を変えたセルの数値化したいです。 ネット上で、通常のセルの色付けを数値化する方法として =GET.CELL(63,*)+NOW()*0で数値化する方法は試しましたが 条件付き書式で色を変えたセルでは反映できないようです。 有識者の方々、ご教授いただけないでしょうか。
- みんなの回答 (5)
- 専門家の回答
みんなの回答
- msMike
- ベストアンサー率20% (364/1804)
[No.1補足]へのコメント、 》 こちらのURL見ていただけたら、… 情報多謝です。m(_._)m 残念ながら、マクロ音痴の私には、それ、♪馬の耳に念仏♪でした。 (*^_^*)
- kkkkkm
- ベストアンサー率66% (1719/2589)
ユーザー定義関数でやると現状の数式を変更するだけで条件付き書式で色を変えた色も含めて数値化できます。 標準モジュールに Function getColor(ByRef mRng As Range) getColor = Evaluate("SubgetColor(" & mRng.Address(, , , True) & ")") End Function Private Function SubgetColor(ByRef mRng As Range) SubgetColor = mRng.DisplayFormat.Interior.ColorIndex If SubgetColor = xlNone Then SubgetColor = 0 End If End Function と記載して たとえばA1の色の数値を出したい場合そのセルに =getcolor(A1) として試してみてください。
- heisukewada
- ベストアンサー率58% (93/160)
どうでもいいことですが、投稿したあとで気が付きました。 マクロの名前の c が抜けていました。 Sub CellcolorIndex() Dim ws As Worksheet Dim cell As Range Dim colorIndex As Long ' シートを指定 Set ws = ThisWorkbook.Sheets("BG数値化") ' A1:A20のセル範囲をループ For Each cell In ws.Range("A1:A20") ' 条件付き書式の背景色のインデックスを取得 colorIndex = cell.DisplayFormat.Interior.colorIndex ' C列に背景色のインデックスを表示 If colorIndex = -4142 Then cell.Offset(0, 2).Value = "No Color" Else cell.Offset(0, 2).Value = colorIndex End If Next cell End Sub
- heisukewada
- ベストアンサー率58% (93/160)
VBAで対処します。 シート名、範囲、表示する列 は、自分に合わせて変更してください。 Sub CellolorIndex() Dim ws As Worksheet Dim cell As Range Dim colorIndex As Long ' シートを指定 Set ws = ThisWorkbook.Sheets("BG数値化") ' A1:A20のセル範囲をループ For Each cell In ws.Range("A1:A20") ' 条件付き書式の背景色のインデックスを取得 colorIndex = cell.DisplayFormat.Interior.colorIndex ' C列に背景色のインデックスを表示 If colorIndex = -4142 Then cell.Offset(0, 2).Value = "No Color" Else cell.Offset(0, 2).Value = colorIndex End If Next cell End Sub colorIndex = cell.DisplayFormat.Interior.colorIndex ここが、一番のポイントかと思います。
- msMike
- ベストアンサー率20% (364/1804)
》 条件付き書式で色を変えたセルの数値化したい もっと具体的に説明願えませんか? =NOW() なんてな現在日時情報と色とが、どう関係するのかサッパリポンなのでお尋ねしています。(*^_^*)
補足
https://qiita.com/mitama/items/d8be114ff3d984478517 こちらのURL見ていただけたら、わかっていただけると思います。