
A 回答 (3件)
- 最新から表示
- 回答順に表示
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
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列の値が変化したら、対応する色を計算して、そのセルに色を付ける」
という内容のマクロを作成して、イベント等に設定しておけば実現可能になると思います。

お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
このQ&Aを見た人はこんなQ&Aも見ています
-
【初月無料キャンペーン実施中】オンライン健康相談gooドクター
24時間365日いつでも医師に健康相談できる!詳しくはコチラ>>
-
処理年月が連続(指定年月~何ケ月間)している人のみ抽出をExcelのみで可能でしょうか
Excel(エクセル)
-
Excelでこの式の意味をおしえていただけますでしょうか、またどのように理解したらいいのでしょうか
Excel(エクセル)
-
10円の誤差が分からない
Excel(エクセル)
-
4
Excel 値を返す数式についてです
Excel(エクセル)
-
5
Excel 計算式を教えて下さい
Excel(エクセル)
-
6
エクセルで隣(右or左)のセルと同じ文字色にしたい
Excel(エクセル)
-
7
年間仕事用シフトカレンダーに、日勤 夜勤 休み に色分けをした。
Excel(エクセル)
-
8
エクセルの質問です
Excel(エクセル)
-
9
Excelで過去の最大値より大の場合、塗りつぶすには
Excel(エクセル)
-
10
エクセルで住所と建物名を分けるには?
Excel(エクセル)
-
11
エクセルで飛び飛びのセルの計算
Excel(エクセル)
-
12
Excelシートのある番地の文字が一致したすべての行を別シートに転記する方法
Excel(エクセル)
-
13
Excelで任意の塗りつぶし色の数字を集計する方法はありますか?
Excel(エクセル)
-
14
Excelで日数の関数がうまく出せません。
Excel(エクセル)
-
15
EXCELで次の数式を教えてください。
Excel(エクセル)
-
16
中身がFALSEなのにTRUEになる
Excel(エクセル)
-
17
Excelで、少数第二位で四捨五入というのは、 =ROUND(B2:B34 , 1) ということです
Excel(エクセル)
-
18
エクセルのファイルを複数のPCで同期する方法は?
Excel(エクセル)
-
19
文書を作るのに会社の人は皆Excelを使っています。 Excelではセルが邪魔だと思うのですが、スム
Excel(エクセル)
-
20
Excel 文字列を結合するときに重複をなくしたい 関数・VBA
Excel(エクセル)
関連するカテゴリからQ&Aを探す
このQ&Aを見た人がよく見るQ&A
人気Q&Aランキング
-
4
納豆食べた後の尿の納豆臭は何故?
-
5
口の中に黒い血の塊
-
6
精子が黄色?
-
7
検便についてです。 便は取れた...
-
8
精液の落とし方を教えてください
-
9
子宮癌検査後、生理が早まる事...
-
10
爪が紫色?
-
11
抗がん剤治療について。
-
12
左背中側の赤丸したあたりが痛...
-
13
精液が漂白剤のにおいがする・・・
-
14
顎下の左右にグリグリとしたし...
-
15
テスターで断線を調べる方法教...
-
16
肺癌は、CTだけじゃ、陽性腫瘍...
-
17
Excelで数式だけを消して、数値...
-
18
最近、飲酒すると手のひらが真...
-
19
長文です。ドクターショッピン...
-
20
1ヶ月ぐらい前から頬に赤いシ...
おすすめ情報
公式facebook
公式twitter