• ベストアンサー

当方、VBA初心者です。

当方、VBA初心者です。 Excelは2003です。 特定の文字列で違うセルの色を変えたいのですが、過去質問等を検索していじってみたりしたのですが、うまくいきませんでした。 例ですが、J14のセルに"DF260"と表示した時はK20のセルを黒色に、 同じJ14のセルに"DF030"と表示した時はK20のセルを赤色にしたいのですが、 色の種類が20種類ほどあり、条件付き書式ではできませんでした。 御教授お願い致します。

質問者が選んだベストアンサー

  • ベストアンサー
  • keithin
  • ベストアンサー率66% (5278/7941)
回答No.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)だけ見るのでいいなら、その旨もっと簡素化して下さい。

yasudekachi0724
質問者

お礼

ありがとうございました。 完璧にうまくいきました。

その他の回答 (1)

  • web2525
  • ベストアンサー率42% (1219/2850)
回答No.1

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内で条件式を作成しようとすると結構躓きやすいです 複雑な計算式の場合シート上で関数ウイザードを利用して計算式を構築するほうが容易に実現出来ます

yasudekachi0724
質問者

お礼

ありがとうございました。 この方法も試してみます。

関連するQ&A