
No.2ベストアンサー
- 回答日時:
こんばんは
1~100と範囲は固定で良いのでしょうか?
◇ 案(1)
No1様と発想が被っているかも知れませんが・・・
添付図では、
・A列に1~10~100までの値を入力してあります。
・C列は =IF(A1="","",LOG(A1)) をフィルコピーしてLOG値を表示
してあります。
1)A列は条件付き書式で、10を中央値として、黄~緑~青でカラースケールを設定したものです。
2)C列はC列の値に対して、条件付き書式で同様に1を中央値として設定したものです。
ご質問は、「2)の色付けをA列に施したい」という意味と思いますが、1)で代用するという案ではダメでしょうか?
カラースケールなので、正確な色までは求めてはいないだろうという推測に基づく案です。
A列は実際には、1~10、10~100間がそれぞれリニアに(対数ではなく)色が変化しています。
C列は対数値に基づいたカラースケールになっていますが、A列の色で代用できないかというものです。
こちらでも良ければ、普通にカラースケールを設定しておくだけで済みます。
「この微妙な色の違いをキチン出したい」というのがご質問の趣旨であるなら・・
◇ 案(2)
>B列にA列の値の対数値を入力して、B列の値で
>A列に色付けするでも構いません
とのことですが、カラースケールの条件付き書式は自身のセルの値以外を参照することはできないようですので、そのままではうまくいきません。
これを実現する方法の例として、E列にマクロでC列の色をコピーしています。
(添付図では、E列にコピーしていますが、A列にコピーすればご質問の内容になるかと)
こちらの案の場合は、対数を計算しておく列(添付図ではC列)が必要であり、そちらにカラースケールを設定しておく必要があります。
この列が邪魔な場合は、どこか離れた列にしておいたり、列を非表示にしておくことで、見えないようにしておくことは可能です。
マクロ自体は、添付図の場合だと
Sub test()
For Each c In Range("C1:C19")
c.Offset(, 2).Interior.Color = c.DisplayFormat.Interior.Color
Next c
End Sub
と、簡単なものですむのでさほどハードルは高くは無いものと思います。
ご質問のA列の値が、「入力値」であるのなら、A列のChangeイベントを利用することで、いちいちマクロを実行しなくても、あたかも条件付き書式が設定されているかのように、自動で反映できるようになります。
◇ 案(3)
案(2)ではマクロを使っていますので、どうせ使用するならB列の値や色の計算もマクロでやってしまうという案です。
色の変化をどのようにするのかによりますが、連続的な変化を計算する場合HSLの方が扱いやすいのではないかと想像します。
一方で、VBAではHSLをサポートしておらず、RGB計算になりますので、HSLベースで色を調整したい場合には色変換の部分も自前で実装する必要が出てしまいます。
RGBベースで計算できる内容なら、このような手間は不要なので、さほど面倒ではありませんが、HSLベースでとなるとこの辺りが面倒になる可能性があります。
いずれにしろ、こちらの場合は、
「A列の値が変化したら、対応する色を計算して、そのセルに色を付ける」
という内容のマクロを作成して、イベント等に設定しておけば実現可能になると思います。

No.3
- 回答日時:
No2です。
まったく反応が無いようなので、勝手に・・・
案(3)の方法の例です。
想定として、
・A列に対応
・値が1~100の数値のみに対応(それ以外は無視)
・カラースケールとして、薄いピンク~赤とし、
1を(255,240,240)、100を(255,0,0)とする。
・セル値の対数に応じて、上記の色を変化させる。
当該シートのシートモジュールに以下を記述しておくことで実現可能と思います。
Private Sub Worksheet_Change(ByVal Target As Range)
Dim c As Range, col As Long, v
If Intersect(Columns(1), Target) Is Nothing Then Exit Sub
For Each c In Intersect(Columns(1), Target)
col = xlNone
v = c.Value
If IsNumeric(v) Then
If 1 <= v And v <= 100 Then
col = (2 - Log(v) / Log(10)) * 120
col = RGB(255, col, col)
End If
End If
c.Interior.Color = col
Next c
End Sub
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
似たような質問が見つかりました
- Excel(エクセル) Excel2019 列と列(2列)の数値の重複を調べたい 1 2023/05/11 13:35
- Excel(エクセル) Excelの中央値の複数条件について 3 2022/05/24 21:22
- Excel(エクセル) Excelで関数を使って入力した値を、関数を抜いた値として扱いたい 1 2022/07/08 02:10
- Excel(エクセル) セルに特定の色が出た時だけ、式を発動させたい 4 2022/06/17 10:32
- Excel(エクセル) ExcelのIF関数について 4 2023/05/24 12:54
- Excel(エクセル) Excelの文字列を数字に変換する方法について 6 2023/07/31 21:18
- Visual Basic(VBA) エクセルVBAで『A列』に新規で数値を入力し『B列』から右方向の空白セルにその値を貼り付ける方法 4 2022/11/05 08:37
- Visual Basic(VBA) 3つのプロシージャをまとめたら実行時エラー発生で対応不能 6 2022/05/17 01:47
- Excel(エクセル) Excelにの以下の設定方法について教えてください! C列にデータ入力の設定をしています。(出、入を 3 2022/06/22 01:33
- Excel(エクセル) セルを参照して条件で値をコピーする 3 2023/02/08 17:45
関連するカテゴリからQ&Aを探す
おすすめ情報
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
首吊りどこ締めるの
-
尿検査前日に自慰行為した時の...
-
値が入っているときだけ計算結...
-
至急!尿検査前日にオナニーし...
-
VLOOKUP関数を使用時、検索する...
-
【Excelで「正弦波」のグラフを...
-
MIN関数で空白セルを無視したい...
-
EXCELで式からグラフを描くには?
-
検便についてです。 便は取れた...
-
リンク先のファイルを開かなく...
-
ある範囲のセルから任意の値を...
-
2つの数値のうち、数値が小さい...
-
尿検査の前日は自慰控えたほう...
-
小数点以下を繰り上げたものを...
-
一番多く表示のある値(文字列...
-
Excel 数値の前の「 ' 」を一括...
-
風俗店へ行く前のご飯
-
値が入っている一番右のセル位...
-
EXCELで条件付き書式で空白セル...
-
彼女のことが好きすぎて彼女の...
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
首吊りどこ締めるの
-
彼女のことが好きすぎて彼女の...
-
イタリアから帰国する際、肉製...
-
2つの数値のうち、数値が小さい...
-
健否~書類の書き方~
-
VLOOKUP関数を使用時、検索する...
-
値が入っているときだけ計算結...
-
小数点以下を繰り上げたものを...
-
エクセルで空白セルを含む列の...
-
EXCELで条件付き書式で空白セル...
-
リンク先のファイルを開かなく...
-
ある範囲のセルから任意の値を...
-
精子に血が・・・
-
エクセルで数式の答えを数値と...
-
風俗店へ行く前のご飯
-
エクセル指定した範囲からラン...
-
一番多く表示のある値(文字列...
-
Excel 数値の前の「 ' 」を一括...
-
ワードのページ番号をもっと下...
-
MIN関数で空白セルを無視したい...
おすすめ情報