- 締切済み
セルの値と色を変えたい
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)の背景色を緑色にしたい 条件付き書式とか設定していますが うまくいきません ご指南ください
- みんなの回答 (5)
- 専門家の回答
みんなの回答
- tsubu-yuki
- ベストアンサー率46% (179/386)
補足も返答も報告もたぶん来ないでしょうから、 思ったことをいくつか。 まぁ、どこまで求めてるか、ですよねー。 > その行の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/17069)
質問者は、条件付き書式の根本がわかっていない。条件付き書式の「条件」は 「セルの値」(設定したセル以外の値を使って=参照しても良い)が左右して、結果として設定したセルの、セルの書式がセットされる。あくまで「書式」に限られる。 質問にある、「セル(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% (364/1804)
- Nouble
- ベストアンサー率18% (330/1783)
悪意の、ある 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) と、入力 書式を 背景の、塗りつぶし 黄色に 設定して 条件点き、書式を 保存、して ください さてさて、 此で、終わり ですが 不具合時は 其の、旨、 お叱りつけの、上 お知らせ、ください
- bunjii
- ベストアンサー率43% (3589/8249)
>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セルに数式が設定されているときは数式バーに値が表示されることはないでしょう)
お礼
VBAにて 自己解決いたしました 条件付き書式とか設定では出来ないようです ご指南ありがとうございます。
補足
早々 ありがとうございます 誠に申し訳ございませんが VBAを使った ご指南をお願いいたします。