- ベストアンサー
当方、VBA初心者です。
当方、VBA初心者です。 Excelは2003です。 特定の文字列で違うセルの色を変えたいのですが、過去質問等を検索していじってみたりしたのですが、うまくいきませんでした。 例ですが、J14のセルに"DF260"と表示した時はK20のセルを黒色に、 同じJ14のセルに"DF030"と表示した時はK20のセルを赤色にしたいのですが、 色の種類が20種類ほどあり、条件付き書式ではできませんでした。 御教授お願い致します。
- みんなの回答 (2)
- 専門家の回答
質問者が選んだベストアンサー
シート名タブを右クリックしてコードの表示を選ぶ 現れたシートに下記をコピー貼り付ける private sub Worksheet_Change(byval Target as excel.range) dim h as range if application.intersect(target, range("J14")) is nothing then exit sub for each h in target select case h.value case "DF260" range("K20").interior.colorindex = 1 case "DF030" range("K20").interior.colorindex = 3 case else range("K20").interior.colorindex = xlnone end select next end sub J14以外のセルも対象にしたいことを想定していますが、ホントにJ14(とK20)だけ見るのでいいなら、その旨もっと簡素化して下さい。
その他の回答 (1)
- web2525
- ベストアンサー率42% (1219/2850)
http://www.happy2-island.com/excelsmile/smile03/capter00602.shtml Range("K20").Interior.ColorIndex = 色番号 として指定するだけです 色番号 (黒)=1 (赤)=3 VBA中で色番号指定にはIF文等で If range("J14")= "DF260" Then 色番号 = 1 ElseIf range("J14")= "DF030" Then 色番号 = 3 End If と判定する必要があります(条件判定にはIf以外の選択肢もあります) 色の種類が20種類もあるのであれば、条件と色番号の一覧表と作業セルをシート内に用意して 作業セル に =VLOOKUP(J14,一覧表範囲,2,0) としてVBAで Range("K20").Interior.ColorIndex = 作業セル.Value とするだけで実現出来ます VBA内で条件式を作成しようとすると結構躓きやすいです 複雑な計算式の場合シート上で関数ウイザードを利用して計算式を構築するほうが容易に実現出来ます
お礼
ありがとうございました。 この方法も試してみます。
お礼
ありがとうございました。 完璧にうまくいきました。