• 締切済み

VBマクロ 条件によってセルの色を変えたいのですが…

いつもこちらで勉強させて頂いております。 Excelで、ある二つの言葉を含むセルに色を付けたいのですが、 言葉の組み合わせが5パターンあり 条件付き書式では足りません。 AとBを含むセル 赤 AとCを含むセル 青 AとDを含むセル 黄 AとEを含むセル 緑 AとFを含むセル 紫 といった様に、条件によってセルの色を変えたいのですが… マクロなどで良い方法はありますでしょうか? どなたかアドバイス宜しくお願い致しますm(__)m

みんなの回答

  • watabe007
  • ベストアンサー率62% (476/760)
回答No.4

Changeイベントを使うなら Private Sub Worksheet_Change(ByVal Target As Range) Dim v1, v2 Dim i As Long With Target If .Count > 1 Then Exit Sub v1 = Array("B", "C", "D", "E", "F") v2 = Array(3, 5, 6, 10, 13) .Interior.ColorIndex = xlNone For i = 0 To UBound(v1) If InStr(.Value, "A") > 0 And InStr(.Value, v1(i)) > 0 Then .Interior.ColorIndex = v2(i) Exit For End If Next i End With End Sub

  • watabe007
  • ベストアンサー率62% (476/760)
回答No.3

どうぞ~ Dim v1, v2 Dim c As Range, i As Long v1 = Array("B", "C", "D", "E", "F") v2 = Array(3, 5, 6, 10, 13) For Each c In Selection For i = 0 To UBound(v1) If InStr(c.Value, "A") > 0 And InStr(c.Value, v1(i)) > 0 Then c.Interior.ColorIndex = v2(i) Exit For End If Next i Next c

回答No.2

横から失礼します。 *は文字列としてつけたのでしょうか? もし曖昧検索としてつけたのであれば不要だと思います。 InStrは指定した文字列がターゲット文字列内に存在するかどうかを判定するので最初から曖昧検索しています。

  • n-jun
  • ベストアンサー率33% (959/2873)
回答No.1

セルA1~A5が範囲とした場合、 Sub try() Dim r As Range For Each r In Range("A1:A5") Select Case True Case InStr(r.Value, "A") * InStr(r.Value, "B") <> 0 r.Interior.ColorIndex = 3 '以下類似 Case Else r.Interior.ColorIndex = xlNone End Select Next End Sub ご参考程度に。

time2007
質問者

補足

n-jun 様 ご回答ありがとうございます。 早速以下の様に変更して試してみたのですが… 変化なしです。 私の変更の仕方に問題があるのでしょうか… Sub try() Dim r As Range For Each r In Range("G1:R100") Select Case True Case InStr(r.Value, "*フライス*") * InStr(r.Value, "*未作業*") <> 0 r.Interior.ColorIndex = 4 '以下類似 Case Else r.Interior.ColorIndex = xlNone End Select Next End Sub

関連するQ&A

  • エクセルの条件付き書式について

    A1セルに「100」が入力された場合、B1セルの色を赤に、同様にして200:青、300:黄、400:緑、500:赤、600:青、700:黄、800:緑という風にB1セルの色を変えたいと思います。 条件付き書式は3つまでしかないのですが、色のパターンは4種類なので、元の書式と合わせると4パターンです。 条件付書式で、A1セルの値が200又は600ならB1セルの色を青にするにはどうすればよろしいでしょうか。 つたない文章でわかりにくいかと思いますが、よろしくご回答ください。

  • 【VBA】複数条件下での色付

    お願いします。 (XP・エクセル2003) ※たとえばA列に『あ』『い』『う』『え』『お』の5種の文字のいづれかが1行目から100行目まで並んでいるとします。(空白セルはなく必ずいずれかの文字が入っている) (1)『あ』の文字のときにはそのセルの色を赤色、『い』ならば青、『う』ならば黄、『え』ならばピンク、『お』ならば茶、と色をかえるマクロを作りたいのですが、方法がわかりません。 (2)同じく、※の条件下で『あ』もしくは『い』のときにはセルの色をどちらも緑にかえる方法を条件付き書式でなく、マクロで作る必要があるのですが、方法がわかりません。 教えてください。 よろしくお願いします。

  • Excel 条件付き書式 3つ以上の条件を設定したい

    Excel2002 条件付き書式を使用して下記の様に数値を入力することにより6個のセルの色をつけたいです。 1→赤 2→黄 3→緑 4→紺 5→青 6→紫 VBA以外で出来る方法がありましたらよろしくお願いいたします!

  • エクセル2003で、数式で出されたセルの値によって、そのセル自体を塗り

    エクセル2003で、数式で出されたセルの値によって、そのセル自体を塗り分けしたいのですが、7種類あるため条件付書式では対応出来ず困っています。 具体的には「2.7000~2.7099」ならピンク、「2.7100~2.7199」なら黄色、「2.7200~2.7299」なら黄色「2.7300~2.7399」なら緑色「2.7400~2.7499」なら青色「2.7500~2.7599」なら紫「2.7600~2.7699」なら灰色 という具合です 漠然としていて申し訳ないのですが、マクロを使用したいと思っています。お力を貸していただけないでしょうか?

  • セルの色をマクロで判定

    セルの色をマクロで判定したいのですが、知恵をお貸し下さい。 シート1のA1セルからA40と      C1セルからC40と      E1セルからE40セルを確認しセルが黄色だったら シート2のF1セルからF40      H1セルからH40      J1セルからJ40の同じ配列の所(A1だったらF1)のセルを赤色にしたいのですが、どのようなマクロを組むといいのでしょうか、どうか宜しくおねがいします。

  • EXCELで条件付書式を使いたいが

    またまた質問させていただきます。 条件付書式を使ってセルの色を変えようとしたのですが、条件が6条件有り出来ませんでした。 やりたいことは、C5~AJ54の範囲のセルに下記の文字が入ったとき、そのセルの色を変えたいのです。 入力  セル色 赤外---黄色 青外---黄色 赤中---緑色 青中---緑色 赤内---青色 青内---青色 といったことがしたいのです。 VBAを使ってセルを塗りつぶす例などを調べてやってみましたが、勉強不足で旨くいきませんでした。 どうか、宜しくお願いします。

  • 条件付き書式で1行おきに色付けした表のセルの数値によりフォントの色を変更したい

    Excel2003です 1行おきに色付け(パターン)した表のC3:C23に計算結果の数値が表示され、その数値がC1より小さいときはフォントの色を「赤」、数値がC1より大きいときはフォントの色を「緑」、数値が表示されないときはその書式を適用しない(1行おきの色付け(パターン)のみ設定)条件付き書式を設定したいのですがその方法を教えてください 例えば 奇数行にパターン「薄い黄色」を設定し、 条件1 =$C3<$C$1 フォントの色「赤」パターンを「薄い黄色」 条件2 =$C3>$C$1 フォントの色「緑」パターンを「薄い黄色」 に設定すると数値を入力しないセルにも「薄い黄色」のパターンが設定されてしまいます。偶数行の空白セルにはパターンを設定しない条件の設定の方法を教えてください。 説明でが不足のときは補足したいと思いますのでよろしく御願いします。    

  • セルの色を調べたい

    既に色づけされたファイルを渡され、 白黒印刷では判別できないので、薄緑色だけサインペンで色を塗るようにと業務指示を受けました。 条件付書式ではありません。 また、薄緑、薄水色、黄色、オレンジ、青等の色もあります。 しかし、画面上では薄緑と水色の判別が目でできません。今はセルの書式設定のパターンひとつひとつ、調べております。 データはかなり膨大なので、何かいい方法があれば教えていただきたいです。どうぞ宜しくお願いします。

  • 【エクセル】マクロ

    すみません。 エクセルのマクロのプログラム教えてください。 セルA1~A30に 「1」~「5」のいずれかの数字が 入っています。 そのA列の数字をもとにB1~B30のセルの書式を 変えたいと思っています。 例えば、「1」なら赤色、「2」なら青色、「3」なら緑色・・・ となるように考えています。 for文で1~30まで繰り返し、if文とswitch文で実行すると 思うのですが、どのようなプログラムを書けばいいですか? よろしくお願いします。 3種類なら条件式書式が使えるのですが、4種類以上だと使えないので マクロで実行しようと思っています。

  • エクセルでセルに色を付ける(多条件)

    質問を検索していてある程度はわかったのですが、 セルに条件によって色を付けるやり方は条件付書式でできるみたいですが、条件が3つまでしか指定できません。 4つ以上ある場合はどうすればよいでしょうか。 例えば、A1セルにはAからEまでの文字が入力されます。 入力された文字によってB1セルをAなら赤、Bなら青といった具合に違う色を表示させたいのです。 エクセル2000です。 宜しくお願いします。

専門家に質問してみよう