• ベストアンサー

VBA入門者です。色々考えたのですが、自分のレベルではどうしても判らな

VBA入門者です。色々考えたのですが、自分のレベルではどうしても判らないので、 この場を借りて質問させていただきます。 例えば、A1からC10の表に適当な数値が入っていたとします。E列でE1から順に数値を入れていき、その数値が表にあれば、その部分のセルに色がつくようにしたいのですが、VBAではどのように式を組めばよいのでしょうか? 条件付き書式ではできたのですが、色をつける場合が4つ以上になるので、VBAで作りたいと思っています。 どなたかにご教示頂ければ幸いです。よろしくお願いします。

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

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

>E列でE1から順に数値を入れていき、その数値が表にあれば、 Changeイベントを使えば良いでしょう シートモジュールに貼り付けてお試し下さい Private Sub Worksheet_Change(ByVal Target As Range)   Dim myRang As Range   Dim myColor As Long   With Target     '入力したセルが複数ならExit     If .Count > 1 Then Exit Sub     '入力セルがE列以外はExit     If .Column <> 5 Then Exit Sub     'Range("A1:C10")範囲に入力した値を検索     Set myRang = Range("A1:C10").Find(What:=.Value, LookIn:=xlValues, LookAt:=xlWhole)     '検索値が無ければExit     If myRang Is Nothing Then Exit Sub     '検索値があれば     Select Case myRang.Row       '1~2行に有れば赤色       Case 1 To 2: myColor = 3       '3~4行に有れば青色       Case 3 To 4: myColor = 5       '5~6行に有れば緑色       Case 5 To 6: myColor = 10       '7~8行に有れば黄色       Case 7 To 8: myColor = 6       '9~10行に有れば水色       Case 8 To 10: myColor = 8     End Select     .Interior.ColorIndex = myColor   End With End Sub

ngayan
質問者

お礼

とても参考になりましR。 早速使わせて頂きました。 ありがとうございました!

全文を見る
すると、全ての回答が全文表示されます。

その他の回答 (2)

  • p-211
  • ベストアンサー率14% (24/170)
回答No.2

補足: .Valueは”値” だけど セルの場合表示されているものと.Valueは必ずしも同じではないので注意! 特に小数以下を含むものだったり日付なんかは・・ その場合.Textにしたほうがいい

全文を見る
すると、全ての回答が全文表示されます。
  • p-211
  • ベストアンサー率14% (24/170)
回答No.1

Dim c As Range For Each C In Range("a1:a10") If ActiveCell.Value=C.Value Then ActiveCell.Interior.ColorIndex = 6 ← 黄色は6  End If Nwxt これをどのイベントでやるかってことだけど・・

ngayan
質問者

お礼

とても参考になりました。 この式を使って色々と応用してみたいと思います。 ありがとうございました!

全文を見る
すると、全ての回答が全文表示されます。

関連するQ&A

  • Excel VBAの入門に良い物

    ExcelのVBAを使用し、 あるセルに文字を入力しその隣のボタンを押したら、入力欄の文字が消えて用意しておいた表に上から順番に入力した文字が追加される、というようなものを作成しようと考えているのですが、素人には出来るわけもなく、入門書や入門者にいいサイトなどを探しています。 もしやってくださる方がいれば良いのですが、大変だと思うので、ExcelのVBAの入門に良いものがあれば教えていただきたいです。

  • VBA 指定条件を満たすデータ表を探したい

    VBA初心者です。 以下のような事をVBAで実現したいのですが、どのようにすればいいのでしょうか。 (本日のお昼頃に似たような質問をして早速回答をいただき解決しました。ありがとうございました。今回は条件の表示位置などが異なる場合です。) 添付画像のような数値データ表があります。 データ表が1から5まであります。 左上にそれぞれのデータ表での数値の検索条件1と2が記載されています。 データ表1は548以上になる位置を上から順に探していき、その数値以上になった時点でセルに色を付けたいです。そしてG列の条件1のセルに「合致」と表示したいです。 条件2の535以下は条件1を満たしたセルの次の行から検索をさせたいです。 (データ表1の場合は22行目からです。) そして、条件2を満たすものが出たらセルに色を付け、H列の条件2に「合致」と表示したいです。 また、例えばデータ表3とデータ表4の場合は条件2で合致するものがないのですが、その場合は H列の条件2に「該当なし」と表示したいです。 よろしくお願いします。

  • 数値の入ったセルの末尾に、「%」つけるVBA

    A列,C列,E列の数値の入ったセルの末尾に、「%」をつける VBAを教えていただけないでしょうか

  • VBA 条件を満たすリストにサイン表示したい

    VBA初心者です。 以下のような事をVBAで実現したいのですが、どのようにすればいいのでしょうか。 添付画像のような数値データ表があります。 それぞれの列に表示されたデータ表をリストA、BとリストD、Eとします。 リストAを上から見ていき最初に条件の548が出てきたらセルに色を付けたいです。そして、リストBの条件はリストAで条件を満たしたセルがある行の次の行からのデータ表のみで条件検索をしたいです。そして、リストBの条件を満たしたらそのセルに色を付けたいです。 そして、リストBに条件を満たすものが出たら「TRUE」などのサインを表示したいです。 リストDとEは同様の検索方法で行ってE列リストに条件を満たすセルがなかった場合の例です。その場合は「FALSE」などのサインを表示したいです。 よろしくお願いします。

  • エクセル2003 VBAなのですが

    エクセル2003 VBAなのですが   A   B    C    D    E    F 1 あ   い   う   お   う   123 2 お   さ   え   あ   お   お 3 あ   い   え   お   え   888 上記のような表があるときに 3個以上同じ文字がある場合にセルに色をつけていきたい状況です 上記表でいうと『あ』と『え』と『お』のセルに色をつけたいのです セルには文字列のほかに数字も入っている状況です 単純にCtrl+Fで検索をして『すべて検索』で 出てきたセル全部に色をつける。 それをA1から文字があるところ全部やる と言った事をマクロでやりたいと思っております。 皆様よろしくお願いいたします。

  • E列のセルに数値が入れば(空白でなければ)B列の同じ行のセルに色がつく

    E列のセルに数値が入れば(空白でなければ)B列の同じ行のセルに色がつくようにしたい。 エクセル2007です。 条件付き書式で、数値を入れたセル自体に色をつけることはできたのですが他の列を参照することができませんでした。 どうやって設定すればいいでしょうか。

  • エクセルVBA 指定した文字を検索クリア

    こんにちは! 過去記事を見てもわからず、質問させて頂きます。 VBAは初心者ですが、猛勉強しているので、ほんの少しは理解できます。 sheet内にAccessからデータを取り込み、Vlookなどの関数を使い、表を作成しています。 その中に、値がなく後ろにつけた"泊"や"名"、「0」が返っているセルが存在します。(数値と文字列) (図の色がついたセル) 例えば"泊"を置換などで処理すると、H;I列の青色のセルまで置き換わってしまいます… やりたいことは、図のG列からK列の青色のセルを残し、赤色と緑色のセルを削除したいです。 該当文字と数値を検索(完全一致のみ)して、削除。それをLoopして といったイメージです… ※削除とはセル自体を削除するのではなく、入力されているものを消す(クリアってことですかね) 表現が下手で申し訳ございません! 非常に行き詰っております… ご教示をお願い申し上げます。

  • 条件付書式のVBA

    条件付書式のVBAについて質問させてください。 A1:A100に「晴れ」「曇り」「雨」「台風」「不明」と入力するとします、するとその行のいくつかセルに色をつけたいです。 たとえば、A1に「晴れ」と入力されたらB1、C1、(D1とばして)E1、F1・・・に色がつく。 できればVBAの式を教えていただけると大変助かります。 どうぞよろしくお願いいたします。

  • VBA

    エクセルVBAの質問です。 条件付書式で、今日の日付以上だとピンクの網掛けにする。 としました。 だけど、これだと空白のセルにもピンクが塗られてしまいます。 空白は何も色を塗らないとするにはどうするのですか。 以上の全てのことができるVBAプログラミングの式はどう書くか教えてください。

  • VBAに関して

    いつも大変参考にさせていただいております。 少し探すのに時間がかかりそうでしたので、以下の方法を教えていただけますでしょうか。 A列 5~100までのセルに結果を表示させたい C列 5~100までのセルにそれぞれ数値が入っている E1セルに パーセンテージが入っている C列のそれぞれにE1セルの数値を上乗せした数値をA列のそれぞれに結果表示させたいと思っています。 良い方法はありますでしょうか。

専門家に質問してみよう