• ベストアンサー

エクセルで、入力された数値でセルの色を変えたいのですが!

入力された数値の大きさにより、セルの色(パターン)を10段階に変化させたいのですが、当方VBEの知識がほとんどありません。 どなたか助けてください。

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

  • ベストアンサー
noname#29107
noname#29107
回答No.4

>Sheet1のセルA2~T2には、あるソフトにより常時変化する数値が >入力され続けます。 そのソフトの仕様によって、どのような手段がとれるかが決まると思います。 妙にExcel側でマクロを組み込むと元のソフトとの連携に障害を及ぼすおそれがあります。 ソフトの開発元に相談される方がよろしいかと思います。 他のソフトとの連携でデータが入力されているような場合、VBAには詳しくないと自認されている状態なら、やめておいた方が無難です。 それでもやってみたいということなら、以下に一応サンプルとして示してみますが、元データの入力仕様がわからないので、正常動作の自信なしです。 Sheet2でのデータの表示位置は、Sheet1と同じとします。その場合、Sheet2のA2に =Sheet1!A2 と入力し、T2までコピーします。 ツール=>マクロ=>Visual Basic EditorでVBEの画面を出し、プロジェクトウィンドウで、Sheet2をダブルクリックし、以下のコードを貼り付けます。 Private Sub Worksheet_Calculate() Call chgclr End Sub VBEの画面のまま、挿入=>標準モジュールで、以下のコードを貼り付けます。 Sub chgclr() Dim MyRng As Range, WkCls As Range Set WkCls = Sheets("Sheet2").Range("A2:T2") For Each MyRng In WkCls   Select Case MyRng.Value   Case 1 To 100     MyRng.Interior.ColorIndex = 22   Case 101 To 200     MyRng.Interior.ColorIndex = 3   Case 201 To 300     MyRng.Interior.ColorIndex = 4   Case 301 To 400     MyRng.Interior.ColorIndex = 5   Case 401 To 500     MyRng.Interior.ColorIndex = 6   Case 501 To 600     MyRng.Interior.ColorIndex = 15   Case 601 To 700     MyRng.Interior.ColorIndex = 31   Case 701 To 800     MyRng.Interior.ColorIndex = 32   Case 801 To 900     MyRng.Interior.ColorIndex = 33   Case 901 To 1000     MyRng.Interior.ColorIndex = 34   Case Else     MyRng.Interior.ColorIndex = 35   End Select Next MyRng End Sub

tes-sekkei
質問者

お礼

早速試してみました。 バッチリです。 どうもありがとうございました。

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

その他の回答 (3)

  • ryoppemag
  • ベストアンサー率15% (15/96)
回答No.3

例えば、A1を黒にしたい場合以下のようになります Range("A1").Select With Selection.Interior .ColorIndex = 1 End With A列の上から順番に数値を読み取って(FOR文とかで) IFかSELECTで分岐させればよいと思います。 サンプル Sub color()   Dim i As Integer   Dim val_s As String   Dim val_i As Integer   Application.ScreenUpdating = False   For i = 1 To 10     Range("A" & CStr(i)).Select     val_s = Selection.Value     If IsNumeric(val_s) = True Then       val_i = CInt(val_s)       If val_s < 10 Then         With Selection.Interior           .ColorIndex = 20         End With       ElseIf val_s < 20 Then         With Selection.Interior           .ColorIndex = 3         End With       ElseIf val_s < 30 Then         With Selection.Interior           .ColorIndex = 4         End With       ElseIf val_s < 40 Then         With Selection.Interior           .ColorIndex = 5         End With       ElseIf val_s < 50 Then         With Selection.Interior           .ColorIndex = 6         End With       ElseIf val_s < 60 Then         With Selection.Interior           .ColorIndex = 7         End With       ElseIf val_s < 70 Then         With Selection.Interior           .ColorIndex = 8         End With       ElseIf val_s < 80 Then         With Selection.Interior           .ColorIndex = 9         End With       ElseIf val_s < 90 Then         With Selection.Interior           .ColorIndex = 10         End With       Else         With Selection.Interior           .ColorIndex = 11         End With       End If     End If   Next   Application.ScreenUpdating = False End Sub ※一応動作確認はしましたが、バグとかあるかもしれないのでそのままは使わないほうが良いかと エラー処理も入れてないし あくまで簡単なサンプルです!

tes-sekkei
質問者

お礼

どうもありがとうございます。 チャレンジしてみます。

全文を見る
すると、全ての回答が全文表示されます。
noname#29107
noname#29107
回答No.2

もう少し条件を具体的に書いてもらわないと回答しづらいです。 A列に入力された数値によって、セルの塗りつぶしの色を変化させるサンプルです。 Private Sub Worksheet_Change(ByVal Target As Range) Dim myRng As Range For Each myRng In Target   If myRng.Column = 1 Then   'どの列のデータを対象にするかを指定。この場合A列。     Select Case myRng.Value     Case 1 To 50       myRng.Interior.ColorIndex = 22     Case 51 To 100       myRng.Interior.ColorIndex = 3     Case 101 To 150       myRng.Interior.ColorIndex = 4     Case 151 To 200       myRng.Interior.ColorIndex = 5     Case 201 To 250       myRng.Interior.ColorIndex = 6     Case 251 To 300       myRng.Interior.ColorIndex = 15     Case Else       myRng.Interior.ColorIndex = xlColorIndexNone     End Select   End If Next myRng End Sub ツール=>マクロ=>Visual Basic EditorでVBEの画面を出し、プロジェクトウィンドウで、対象のワークシートをダブルクリック、上記コードを貼り付けます。ワークシートが変更されると上記のマクロが実行されます。 とりあえず6段階の数値にしか対応していませんが、10段階も同じようにすれば、できるでしょう。 ただ、どんなデータを前提にしているのかが全く分からないので、Select Case文が最適かどうかは分かりません。 また、Worksheet_Changeは、使い方によっては、悲惨なことになりますので、十分な注意が必要です。

tes-sekkei
質問者

補足

ご回答ありがとうございます。 具体的な内容は、次のようになります。 Sheet1のセルA2~T2には、あるソフトにより常時変化する数値が入力され続けます。 その数値の変化を、より視覚的にわかりやすく表現するため、Sheet2にその数値を配置すると共に、数値の大きさにより100刻みに100以下~1000以上まで10段階にセルの色を変化させるようにしたいのです。

全文を見る
すると、全ての回答が全文表示されます。
noname#44934
noname#44934
回答No.1

VBAの知識が無くてもセルの条件書式の設定で出来るとおもいます。 書式メニューの中に条件書式があります。 これでもご希望に添えなかったら済みません。

tes-sekkei
質問者

補足

早速のご回答どうもありがとうございます。 条件付書式の設定は、3項目までとなっております。 10段階の色設定をすることは出来ません。 何か他にもアイディアがございましたら、お教え下さい。

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

関連するQ&A

  • エクセル2003/数値ごとにセルを色で塗りつぶしたい

    WindowsXP・SP2・エクセル2003を使用しています。 エクセルで、セルを正方形ブロック状態にして、市内のマップを作りました。 営業成績(数値)を入力すると、そのセルが色で表示されるようにしたいです。どのようにすればよいでしょうか? だいたい、10段階(10色)くらいで表示したいと思っています。

  • excelのセルに入力した数値

    excelのセルに入力した数値を計算させたいのですが何かいい方法は知りませんか? 例えば、A1のセルに1という数字を入力します。またそのA1のセルに今度は2という数字を入力したときにA1のセルの値が3になるようにしたいのです。簡単に言えば前に入力してある数値を記憶させておいて次に入力した数値をどんどん足していくようにしたいのです。

  • 数値によって指定したセルの色を変えたい。

    質問させて頂きます。 EXCELで表を作成します。 入力する数値によって指定したセルの色を変えたいのですが・・・。 具体的にはA2に数値を入力します。 入力する数値は1または2のみですが入力する数値によって A1~D4の4個のセルが1ならば赤、2ならば青と言う風に 色を変える事が出来ますか? 宜しくお願い致します。

  • Excel 自動で入力した数値に応じて色をつける

      タイトルに記入しました通りなのですが・・・詳細は Excelを使用して日計を手入力しているのですが A1のセルに前日の売上げ B1のセルに本日の売上げ を入力しております。 その際にフォントの色を選択し 売上げが下がっている場合は『赤』 売上げが上がっている場合は『青』 に変更しているのですが・・・ 項目が多く自動で色を変更することは出来ないかと ヘルプ等で調べてみたのですが 「条件付書式」の設定ですと 各セルの数値を入力しなければなりません。 そこで B1のセルに入力した数値が A1のセルより少ない場合は『赤』 逆に A1のセルより多い場合は『青』 変化が無い場合は『黒』のまま ・・・と、いうような設定をすることは出来ませんでしょうか? B1以降(C1~)も同条件で隣のセルに応じて 自動で色を付けられたら作業効率が上がるのですが。。。 初心者の質問で申し訳ございません。 念のため WindowsXP ExcelのVerは2002 です。 ご教授 宜しくお願い申し上げます。  

  • EXCELのセル内で数値(値)の色を変更したい

    EXCEL2010を使用していますが、 あるセル内で最初から○番目から以降の入力数値の色を自動的に変更したいのですが何か方法はありますか?  例えばA1セルに数値を入力しますが、最初から3番目までの数値は黒、4番目からは赤という風に自動で変わるようにしたいのです(8番目からは青というふうにも出来るなら教えてほしいです)  条件付書式等ではセル全体で入力値の色が変わってしまいます また、今のセルに入力してある数値をいくつかのセルに分けて入力しようと思いましたが、 そのファイル自体がいろんなファイルと連動したシステムを構築してありますので不可能になっています お知恵をお借りできればと思いますのでよろしくお願いいたします 

  • エクセル2007必ず入力するセルに色をつけたい

    エクセル2007を使用しています 足し算やかけ算などの関数をよく使うのですが 元になる数値を入力するセルに色をつけたいのです さらに入力が終わると色が消えるようにしたいのですがどうすればできますか? 教えてください。 例 A1 10  A2 20  A3に答え30 A1に入力前は黄色、入力後は白 A2に入力前は赤色、入力後は白 このようなことできますか? 出来ると入力ミスや勘違いが防げて便利だと思ってます

  • エクセル 数値の入力の仕方について

    OSはXP(He)Excel2003です。あるセルの100が150に変化する場合、そのセルに50を入力して150にする方法はありますか?例えば「Ctrlキー押しながら+押しながら50を押す」とか・・・これではダメでしたけど。やはり電卓で合計値を計算して入力するしかありませんか。元の数値も、変化する数値も様々で不定期です。

  • エクセル 自動で数値に色をつけたい

    いつもお世話になっています。 ダンナが病気で毎週血液検査を受けていてそれをエクセルに つけています。 毎回基準値以下だと青色。基準値以上だと赤色に1つ1つ数値に 色をつけて記入しているのですが、この数値以上だと自動的に 色をかえる。ような事はできないのでしょうか?? (たとえば基準値が30-80として25と入力すれば自動的に 青色になり90と入力すれば自動的に赤色になるなど) また今までの結果の中で一番低い数値や高い数値には自分で セル内の色をかえています。 新しく入力した数値が今までの中で一番高い(低い)数値だった場合 今まで一番高い(低い)数値だったセルの色を元にもどし、今回の 更新された数値のセルを自動でセル内の色をかえたりする事はできないのでしょうか? 今回もうまく説明できないのですが、わかって頂ける方が いらっしゃったら是非教えて下さい。 よろしくお願いします。

  • セル内の数値の色を変えたい!

    変動する数値に対して、範囲外の数値の色を変えたいのですが何度やってもうまくいきません(T_T) 例えば、【A1】のセルに500、【A2】に480という数値を入力した際、青文字にしたいのです。500から前後14以上の範囲で赤と青にしたいとき、条件付き書式の数式を知りたいです。 どなたか教えてください。

  • EXCELで セルの端に数値を 入力したい

    EXCELで セルの端に数値を 入力する方法 と セルに入力した数値を 中央に置く方法を教えてください (セルは結合していて偶数)

競馬や競輪の美化の理由とは?
このQ&Aのポイント
  • 競馬や競輪はなぜ美化されているのでしょうか?
  • CMでは人気俳優や女優を起用し、安全な遊びとして宣伝されています。
  • しかし、競馬や競輪は実際にはギャンブルであり、借金や困難な現実も存在します。
回答を見る