• 締切済み

セルの値と色を変えたい

OS WIN10 Office2007の環境で A列B列C列で各行は20づづあります 実現したいのは 1. D列に文字列(D2に)Hが入力されると、その行のB列(B2)の値を削除2の行(A2 B2 C2)の背景色を黄色にしたい 2. D列に文字列(D2に)Gが入力されると、その行のB列(B2)の値を削除2の行(A2 B2 C2)の背景色を緑色にしたい 条件付き書式とか設定していますが うまくいきません ご指南ください

みんなの回答

回答No.5

補足も返答も報告もたぶん来ないでしょうから、 思ったことをいくつか。 まぁ、どこまで求めてるか、ですよねー。 > その行のB列(B2)の値を削除 の真意として ・値は残しておきたい  (条件から外れたら元の値に戻したい) ・完全に削除(というか、消去でしょ?)したい どちらなのかなぁ、とか。 前者なら条件付き書式で「文字色=背景色」を設定してやれば十分OK。 後者ならVBAでしょうねぇ。 ただし、基本的には元の値に戻せませんけどね。 その辺を理解せずに、安易に > VBAで指南を とかだろうなぁ。 本当にそれで良いのか、考え直した方がいいかもしれませんね。 ま、私はオススメしませんけど。 やるなら、WorkSheet_Changeイベントに Private Sub Worksheet_Change(ByVal Target As Range)   Application.EnableEvents = False   If Target.Column = 4 Then     With Range(Cells(Target.Row, 1), Cells(Target.Row, 3))       Select Case Target.Value         Case "H"           Cells(Target.Row, 2).ClearContents           .Interior.Color = vbYellow         Case "G"           Cells(Target.Row, 2).ClearContents           .Interior.Color = vbGreen         Case Else           .Interior.Color = xlNone     End Select   End If   Application.EnableEvents = True End Sub ま、こんな感じでもいけそうですね。 どなたかも仰っているように、 コレが「悪意のない構文」である保証は一切しません。 自己責任でお使いくださいませ。

  • imogasi
  • ベストアンサー率27% (4737/17068)
回答No.4

質問者は、条件付き書式の根本がわかっていない。条件付き書式の「条件」は 「セルの値」(設定したセル以外の値を使って=参照しても良い)が左右して、結果として設定したセルの、セルの書式がセットされる。あくまで「書式」に限られる。 質問にある、「セル(B2など)の値を削除する」ことはできない。エクセルの書式ー表示形式ーセルの値ー数式の関連が理解できてないからこういう質問や要望になる。私ならこうい質問は、無理だとして出さない。あきらめる。 文字色を白色にしたりして、見えない(見えにくい)ようにすることはセルの書式の世界のことなのでしようと思えばできる。 ーー 質問のことをしようとすれば、最低でもVBA(それもイベントという仕組み) を使うことが必要だろう。しかし一朝一夕には学習できないので、あきらめること。 質問のしたいことの一部個所だけ単純な例で、VBAのコードのさわりだけ書くと WorkSheet1のWorksheet_Changeイベントに Private Sub Worksheet_Change(ByVal Target As Range) If Target.Column = 4 Then MsgBox "D列に入力した" If Target.Value = "H" Then MsgBox "値がHと入力した" Range("B" & Target.Row) = "" ’B列のその行の値だけ空白にする Range(Cells(Target.Row, "A"), Cells(Target.Row, "C")).Interior.Color = vbYellow End If End If End Sub と入れておくと、D2セルをアクチブにして、Hと入力すると、 A2:C2の値は空白になり、セルの塗りつぶしのの色は、黄色になる。 Gという値が入力された場合は略。その他のいろんなケースへの対応は、書いても質問者に意味がないから略。上記は素直な場合で、いろいろな異例事態のテストもやってないので十全でないかも。

  • msMike
  • ベストアンサー率20% (363/1775)
回答No.3

添付図参照 余計な解説は省略 添付図下段の左右に垣間見えてる数式、手京崎から読み取ってください。

  • Nouble
  • ベストアンサー率18% (330/1783)
回答No.2

悪意の、ある VBAアプリを 気に、する 事業所も、あります 勝手に、使うと いっべんに 信用を、無くす 事も 考え得りますが VBAは 使って 問題、ない ですか? 認可は 取れて、ますか? VBAが もし、 駄目な、場合は 計算方法を 反復化に、設定 できる、なら 出来ますよ 但し、何列か 作業列を、頂きますね よって 行を、増やす 場合は 行毎 1行、全体 増やさないと 機能不全に、なり易いです 留意して、くださいね さて、 要するに、は D2が H、ならば A2:C2の 背景を、黄色に G、ならば A2:C2の 背景を、緑色に そして、共に B2の、値を 排除する ですね? 違ったら 訂正、頂けますか? 排除後の、値は ""で、構いませんか? 書き込み、タイミング 評価用に AA2を 書き込み値、支持用に AB2を 書き込み、指示用に AC2を 頂きますね まず、B2 2つ、示します 違いは、値を 記入と消去 同時に、指示を 出した、場合 どちらを、優先 するか です 消去、優先型 =IF(OR($G2="G",$G2="H"),B2="",IF($AA2=$AC2,B2.$AB2)) 書き込み、優先型 =IF($AA2<>$AC2,$AB2,IF(OR($G2="G",$G2="H"),B2="",B2)) 次です AA2に =AC2 と 入れて、ください B2に 値を、覚えさせる のは まず、 AB2に 値を、書き AC2を 何等かに、書き換えます すると B2の 値が、変わる と、思ってます (※注:違ったら 其の、旨 お叱り、ください) 消去、優先型は D2に G、またはHが 入っている、限り 値は 式では、読み込みません 書き込み、優先型は 消去時にも、AC2を 書き換える、必要が あります 次は、背景色 条件付き、書式で します 但し、 其の、前に 入力後 勝手に 書き換えられる事が あります、ので 入力直後は 一旦 条件付き、書式を 保存して、開け直して 書き換わって、ないか 確認して、ください では、 ます、 A2を、クリック C2まで、ドロー すると、 B2:C2が、薄ブルー(かな?) A2が 枠青、中白、 に、なる と、思います 此の、状態が とても、大切で 此の、状態を 前提に 説明、している ため 此処が、狂うと 思った、ようには 動いて、くれません では 条件点き、書式を 追加して、いきます 条件点き、書式の 内 スタイルの、クラシック内の 「式を使用して。書式設定するセルを指定」 を、選び 式、記入欄に =("G"=$G2) と、入力 書式を 背景の、塗りつぶし 緑色に 設定して 条件点き、書式を 保存、して ください 同様に G2が、H時も 条件点き、書式の 内 スタイルの、クラシック内の 「式を使用して。書式設定するセルを指定」 を、選び 式、記入欄に =("H"=$G2) と、入力 書式を 背景の、塗りつぶし 黄色に 設定して 条件点き、書式を 保存、して ください さてさて、 此で、終わり ですが 不具合時は 其の、旨、 お叱りつけの、上 お知らせ、ください

tom2011
質問者

お礼

VBAにて 自己解決いたしました 条件付き書式とか設定では出来ないようです ご指南ありがとうございます。

tom2011
質問者

補足

早々 ありがとうございます 誠に申し訳ございませんが VBAを使った ご指南をお願いいたします。

  • bunjii
  • ベストアンサー率43% (3589/8248)
回答No.1

>1. D列に文字列(D2に)Hが入力されると、その行のB列(B2)の値を削除2の行(A2 B2 C2)の背景色を黄色にしたい 条件付き書式で背景色を黄色にすることは可能ですが、B2の値の削除はできません。(マクロなら可能) B2の値をセルの背景(塗りつぶし)の色とフォントの色を同じにして見えなくする方法はあります。 >2. D列に文字列(D2に)Gが入力されると、その行のB列(B2)の値を削除2の行(A2 B2 C2)の背景色を緑色にしたい 1番目の要件と同じなので条件付き書式で実現できます。 >条件付き書式とか設定していますが うまくいきません どのようなことを行ったかを補足して頂ければ添削可能です。 質問では2行のみを対象にしていますが他の行は考える必要が無いと言うことでしょうか? 質問の内容では条件付き書式の「数式を使用して、書式を設定するセルを決定」を使えば良いでしょう。 B2セルを選択して次の数式を条件付き書式の数式に入力し、フォントの色を黄色にします。 =$D2="H" 次にA2:C2を選択して次の前述の条件式を入力し、塗りつぶしの色を黄色(フォントと同色)にします。 D2セルがGのときの処理は同じ範囲の条件付き書式で数式を次のように入力し、フォントの色を緑にすることと塗りつぶしの色を緑にすれば良いことになります。 =$D2="G" 何れのときもB2セルの値は一見して見えなくなるだけで、B2セルを選択すれば数式バーに値が表示されてしまいます。(B2セルに数式が設定されているときは数式バーに値が表示されることはないでしょう)

関連するQ&A

  • Excel 「条件付き書式」でセルの範囲に色を付ける場合

    いつも大変お世話になります。 Excelの「条件付き書式」を使って指定するセルの範囲に色を付けたいのですが、どうすればよいでしょうか。状況は以下のような感じです。   A  B  C  D 1 ○  ×    文字列  ←色を付けたい行 2 ○  ○ 3 ×  × ○  文字列  ←色を付けたい行 Dセルで文字列の入力されてある行(AからDセル)に色を付けたいのです。 何とぞよろしくお願いいたします。

  • Excel(2000)で行毎にセルをみて、値を返す

    例えば、以下のようなデータがあったとして、各行毎に左から見た結果、最初にデータがあったセルの列の1行のセルの値を各行のG列に返したい。 ______A__B__C__D__E__F__G__ 1行_ア__イ__ウ__エ__オ__カ____ 2行_1__3__5__2__4__1__ア__ 3行_____2__5__1__5__4__イ__ 4行_____________2__8__2__エ__ 5行_____2______2__1__4__イ__ 6行_________5______2______ウ__ G列に結果。 例えば、G3のセルに何らかの関数を入れて、A3~F3を左から見た結果、B3に2というデータがあるので、その列の1行であるB1の値、イをG3に返すといったないようです。 _ は、スペースをとるためのものです。 実際のデータは500行あり、各行の検索する列数は23列あります。 よろしくお願い致します。

  • 条件付き書式でセルに色を付けた際のズレ

    OSバージョン:Windows7 Professional SP1 Excelバージョン:Excel2007(12.0.06665.5003) SP3 MSO(12.0.06665.5003) スケジュール表を作成するにあたり、条件付き書式で自動的に該当時刻列のセルに色が付くようにしたいと思っています。 サンプルとして、 ------------------------------------------ 【セルに値を入力】 ・A3:A62に22:00~22:59の時刻を1分刻みで入力(開始時刻列) ・B3:B62に22:01~23:00の時刻を1分刻みで入力(終了時刻列) ・C2:BK2に22:00~23:00の時刻を1分刻みで入力(数式参照用時刻行) 【条件付き書式を設定】 ■数式を使用して、書式設定するセルを決定を選択し、以下の数式を設定 "=IF(C$2>=$A3,IF(C$2<$B3,TRUE,FALSE),FALSE)" ■書式:セルを赤で塗りつぶす ■適用先:"=$C$3:$BK$62" ------------------------------------------ と設定します。 全て開始~終了が1分なので、各行1セルずつ赤色がついて、綺麗に斜めの線が出来る想定なのですが、 6行目、8行目、10行目、12行目以降の行について、2セルずつ赤色がついてしまいます。 こうなってしまう事象原因がお分かりの方はいらっしゃいますでしょうか? よろしくお願いします。

  • 塗りつぶしで色付けしたセルの1行を同じ色にしたい

    いつも、いつもお世話になりありがとうございます。 下図のC列(C4~C34)に「セルの塗りつぶし」で色を付けた(3~5色ほど予定)セルと同じ色で 1行(D列~AG列)を塗りつぶす方法はないでしょうか? しかも、条件付き書式で設定したセルは下図の4行目のように、その書式の色を そのまま残したいのです。 途中、空白のセルも有ります。 条件付き書式の設定を使って「数式を・・・」「文字」「値」などを利用する方法は 検索して出てくるのですが、C列は任意で言葉を入れ、「セルの塗りつぶし」で着色します。 ですから、条件は 1.C列のセルの色を読み取り、その右側の1行(D列~AG列)を同じ色にする。 2.条件付き書式で設定したセルは、その書式の色をそのまま残す。 3.途中、値も関数式も文字も何もない空白のセルもある。 そんな都合の良い方法は有りますでしょうか? もし有りましたら、どうかご教授いただけないでしょうか? よろしく、お願い致します。

  • ある条件の下でセルに値を入力するには??

    以前、似た様な質問をしたのですが、 今回は、色を付けるのではなく、値を入力することになったのですが 具体例としては ....A........B.......C.......D.......E........F..........G..........H..........J..........K 1 ....................8:00..9:00..10:00..11:00..12:00..13:00..14:00..15:00 2 ..8:00 12:00 1.....1.......1..........1..........1 3 10:00 15:00..................1..........1..........1..........1...........1..........1 このような感じにしたいのです。 (A2からB2間の時間を1行目を参照して2行目のC2以降の セルに値を入力する) 『.』は、あわせるために入れたので気になさらないでください。 色がつけるのは条件付書式で解決しました。 ですが、今回は値を入力する形にして セル内に数値が入力されていると 条件付書式で色を付けたいと考えております。 どうか、ご教授していただけないでしょうか? ちなみに、これはマクロで可能なのでしょうか?

  • 同じ行の2つのセルの値の重複チェックを行う方法

    はじめまして。 同じ行の2つのセルに入力された値の重複チェックを各行ごとに行いたいのですが、IF関数で入力してC列にsameや1などで表示させたいのですがどのようにすればよいのでしょうか? ※A列やB列には無記入の箇所があります。 A列 B列 C列 25356 85425 5265 5265 same 859 8758 A525 A578 T859 T7858 B6524 B6524 same 8593 845365 B856975 T326132 B9875 B9875 same 1 1 same

  • あるセル列内に任意の文字列があった場合の自動処理

    VBAを利用して、あるセル列内にある文字列があった場合に その文字列が存在した行のAセルからCセルまで自動的に 背景色をグレーにしてくれるような動きをしたいです。 簡単に言うと、「作業完了」の文字列があったらその行をグレーするイメージです。 参考例として、セルC列に対してその列内のあるCセル列に 文字列"@"が入力された場合、その行のA行からC行まで 自動的に背景色を変更したいです。 また、"@"が入力されていない場合は、元の背景色に戻るようにしたいです。 ■ 例1:C2に"@"が入力されるパターン 【入力前】  | A | B | C | -+---+---+---+- 1|   |   |   | -+---+---+---+- 2|   |   |   | ← 当然何も変化なし -+---+---+---+- 3|   |   |   | -+---+---+---+- 【入力後】  | A | B | C | -+---+---+---+- 1|   |   |   | -+---+---+---+- 2|////|////|/@/| ← ← C2に"@"が入力されるとA2~C2までの背景色をグレーに変更。 -+---+---+---+- 3|   |   |   | -+---+---+---+- 【削除】  | A | B | C | -+---+---+---+- 1|   |   |   | -+---+---+---+- 2|   |   |   | ← C2の"@"を消すと入力前に戻る。(元通り) -+---+---+---+- 3|   |   |   | -+---+---+---+- 任意の文字列をきっかけに自動実行するようには出来たのですが それから先がさっぱりで困っています、、、。 よろしくお願いします。

  • 2つの値が同じという条件で行を消したい。

    下のような表で、1列目、2列目の値がともにダブっている行のみを消したいです。 1   A 1   B 1   B 1   C 2   A 3   C 3   A 3   C でいうと2、3行めの 1   B と 6、8行めの 3   C がダブっているので それを行ごと消して 次のようにしたいのです。 1   A 1   B 1   C 2   A 3   C 3   A ちなみに各行には他の列にもデータがならんでいます (3   A   あ   カ・・・・・・のようになっています)。 また、ダブるのは2行に限らず3行4行にわたるものもあります。 これってけっこう難しいのでしょうか? ぜひアドバイスを。

  • セルの値によって、入力可能なセルを動的に変更したい

    こんにちは。 Excelで、以下のような動作をしたいと考えています。 B列に入った値が'1'のときは、同じ行のC列・E列・H列にしか入力できないようにする。 B列に入った値が'2'のときは、同じ行のD列・F列・G列・H列にしか入力できないようにする。 (遷移できない列は、選択不可能とする) ある列に入力した値によって、動的にセルのロックを変更する・・・?というイメージなのですが、 具体的な実現方法がわかりません。 実現方法を教えていただけないでしょうか。 よろしくお願いします!!

  • VBA 色付きのセルを、隣接セルに値で貼り付けたい

    Excel365です。 A列に、100行ぐらいデータが入っています。 ところどころ、黄で塗りつぶされており、色は「黄」のみです。 A列内で、「黄」で塗りつぶしされているセルがあった場合、B列に、値として貼り付けたいです。 例の画像だと、 A2、A4のデータが、それぞれB2、B4に値として貼り付けたいです。

専門家に質問してみよう