• 締切済み

Excel2010 セル色の変更について

エクセルの条件付き書式で表の色付けをしていますが 参照先のセルをデリートした時に書式の色が消えなくて困っています 表の構成としては項目(B・C列)は2行で 本日の日付をC3セルに「 =today() 」で表示させ 6行目にあるA・B・C・Dのアルファベットは その項目に対してしなければいけない予定の事象を書き 各項目のD・E・F・G列には 項目内上列に予定事象の期限を自動入力(関数入力済)し 項目内下列は事象実施日を手動で入力するようにしてあります 事象予定日の日付がC3セルと同じ日(当日)になれば事象予定日のセルを赤塗 C3セルの前日であれば黄塗、3日前であれば緑塗で事象予定日のセルが表示され 事象実施日がC3の日付より1日以上前であれば事象実施日を灰塗で表示させています ここまでが現状で、ここからがうまくいきません やりたい事としては 実施日が入力されたら予定日のセルの色も実施日のセルと同様に灰塗にし 実施日が未入力状態であるときは予定日のセル色に対しての変更はかけたくないのですが 実施日に日付を入力をすると予定日のセルも灰色にはなるものの 一度入力された実施日のセルをデリートしても予定日のセルが灰塗のままで戻りません。 予定日のセルに設定した条件付き書式は ・「数式を使用して~」→「次の数式を~」に「=$○$8=""」 書式に白塗 ・「指定の値を含む~」→「次のセルのみを~」に「セルの値」「次の値に等しい」「=$C$3+3」書式緑塗 ・「指定の値を含む~」→「次のセルのみを~」に「セルの値」「次の値に等しい」「=$C$3+1」書式黄塗 ・「指定の値を含む~」→「次のセルのみを~」に「セルの値」「次の値以下」「=$C$3」書式赤塗 ・「数式を使用して~」→「次の数式を満たす場合に~」に「=$○$8<$C$3」→書式灰塗  ※○の中には相関列文字を入力 この一通りの設定を、項目の上行と下行に対して参照関係になるようにセル位置の指定は変更してあります (E列の数式にはEを、F列の数式にはFを という具合です) これ以上何かを設定しなければいけないのか、どこかの設定が間違っているのか、VBAじゃないとできないのか・・・ どなたかご教授願います。説明の過不足等ありましたらご指摘ください。

みんなの回答

  • kagakusuki
  • ベストアンサー率51% (2610/5101)
回答No.4

 回答No.3における「$○$9」の件に関する補足要求に対して、 >例えば○○○の項目にある予定日のEの列にはE8セルに対する白塗指定として「=$E$8=""」を使用し >同じ項目のF列であれば「=$F$8=""」を使用 >また、別項目である▲▲▲についてはD列に「=$D$10=""」 >□□□の予定日には「=$D$14=""」や「=$E$14=""」がセルに設定してあり >特定の項目に対して特別な扱いは行っていません との御補足を頂きましたが、それは予定日のセルに対する条件付き書式の設定に関する説明ですね?  それに対して、回答No.1に対する補足にある、 >実施日セルには >・「数式を使用して~」→「次の数式を~」に「=$○$9=""」 書式白塗 >・「数式を使用して~」→「次の数式を満たす場合に~」に「=$○$9<$C$3」→書式灰塗 >の条件を設定してあります という条件付き書式は、実施日のセルに対する条件付き書式の設定の話であり、こちらの方は、どのセルに設定する条件付き書式であるのかという事に関して御説明がない様ですが、これはどの実施日のセルに対して設定する条件付き書式の話なのでしょうか?  もしかしますと、実施日のセルの条件付き書式に関しても「$○$9」というのは間違いで、本当は例えばD8セルに対する条件付き書式で設定されている数式における該当する参照先の所は(予定日の場合と同様に)「$D$8」とされているという事なのでしょうか?  >例えば○○○の項目にある予定日のEの列にはE8セルに対する白塗指定として「=$E$8=""」を使用し >同じ項目のF列であれば「=$F$8=""」を使用  「予定日のEの列にはE8セルに対する」とありますが、E8セルは実施日のセルの筈で、予定日のセルで御座いませんから、御説明の内容に矛盾がある様に思います。  そのため、その御説明では「予定日のセルであるE7セル」に対する条件付き書式の設定の事なのか、それとも「実施日のセルであるE8セル」に対する条件付き書式の設定の事なのかがはっきりとしません。  もし仮に、「予定日のセルであるE7セル」に対する条件付き書式の設定に関する話であるとしますと、質問者様の御説明をまとめて考えた場合の、予定日のセルに対する塗りつぶしの条件は次の様なものになると思われますが、以下の通りと考えれば宜しいのでしょうか? ●実施日に日付が入力されていない状態では、(例え本日の日付が予定日以降となっていたとしても)予定日のセルに対する塗りつぶしは行わない ●本日の日付が実施日に入力されている日付よりも前である場合には、予定日のセルに何日の日付が入力されているのかという事には関係なく、(例え本日の日付が予定日以降となっていたとしても)予定日のセルを必ず灰色塗り潰す ●本日の日付が実施日に入力されている日付と同じか、或いは実施日を過ぎている場合で、尚且つ、本日の日付が予定日の3日前以降(3日前も含む)になった場合には、その予定日のセルを緑色で塗り潰す(本日の日付が実施日に達していない場合には灰塗り、本日の日付が入力されていない場合には白塗り) ●本日の日付が実施日に入力されている日付と同じか、或いは実施日を過ぎている場合で、尚且つ、本日の日付が予定日の前日になった場合には、その予定日のセルを黄色で塗り潰す(本日の日付が実施日に達していない場合には灰塗り、本日の日付が入力されていない場合には白塗り) ●本日の日付が実施日に入力されている日付と同じか、或いは実施日を過ぎている場合で、尚且つ、本日の日付が予定日に達するか、又は予定日を過ぎた場合には、その予定日のセルを赤色で塗り潰す(本日の日付が実施日に達していない場合には灰塗り、本日の日付が入力されていない場合には白塗り)  これらは実施日以降にならなければ、予定日の緑塗り、黄塗り、赤塗り、等の予定日に基づいた色塗りは行わないという事であり、実施済みの案件に対して、何故、予定日の色分けをしなければならないのか理解に苦しみます。  この様な条件となっているのは、質問者様が挙げられた条件の中に、 >実施日が未入力状態であるときは予定日のセル色に対しての変更はかけたくない という条件と >実施日が入力されたら予定日のセルの色も実施日のセルと同様に灰塗にし >実施日セルには >・「数式を使用して~」→「次の数式を満たす場合に~」に「=$○$9<$C$3」→書式灰塗 という条件があるため(「=$○$9<$C$3」の部分は「=$○$8<$C$3」の間違いであると仮定)ですが、この2つの条件は、本当に間違いではないのでしょうか?  色々と腑に落ちない点が多々ありますので、取り敢えず、D7セルに関して、 ●D8セルが未入力の場合 ●本日の日付がD8セルに入力されている日付に対して、何日前になった場合 ●本日の日付がD8セルに入力されている日付の日となった場合 ●本日の日付がD8セルに入力されている日付に対して、何日後になった場合 のそれぞれの条件下において、 ●D7セルが未入力の場合 ●本日の日付がD7セルに入力されている日付に対して、何日前になった場合 ●本日の日付がD7セルに入力されている日付の日となった場合 ●本日の日付がD7セルに入力されている日付に対して、何日後になった場合 のそれぞれの場合において、D7セルにどの様な塗りつぶしを行うのかという事と、D8セルに関して、 ●D7セルが未入力の場合 ●本日の日付がD7セルに入力されている日付に対して、何日前になった場合 ●本日の日付がD7セルに入力されている日付の日となった場合 ●本日の日付がD7セルに入力されている日付に対して、何日後になった場合 のそれぞれの条件下において、 ●D8セルが未入力の場合 ●本日の日付がD8セルに入力されている日付に対して、何日前になった場合 ●本日の日付がD8セルに入力されている日付の日となった場合 ●本日の日付がD8セルに入力されている日付に対して、何日後になった場合 のそれぞれの場合において、D8セルにどの様な塗りつぶしを行うのかという事を、漏らさずに書き出しては頂けないでしょうか?  その際、もしも、D7セルやD8セル以外にも、「D7セルやD8セルの各条件付き書式」に関わるセルがある場合には、そのセルに入力される値によって決まる条件毎に、D7セルやD8セルにどの様な塗りつぶしを行うのかという事も、合わせて書き出して頂く様御願い致します。

  • kagakusuki
  • ベストアンサー率51% (2610/5101)
回答No.3

>実施日セルには >・「数式を使用して~」→「次の数式を~」に「=$○$9=""」 書式白塗 >・「数式を使用して~」→「次の数式を満たす場合に~」に「=$○$9<$C$3」→書式灰塗  何をしたいと仰っているのか良く解りません。  「$○$9」という具合に、行番号が絶対参照となっているという事は、8行目、10行目、12行目、14行目、16行目の予定日のセルには、どの行のセルであるのかには関係なく、全て9行目のセル、即ち「▲▲▲」の予定日の入力欄に、どの様な値が入力されているのかによって、条件付き書式が現れるか否かが決まっているという事になります。  つまり、質問者様が仰る条件では、「▲▲▲」の予定日が入力されていない列があった場合には、その列における「▲▲▲」の実施日は無論の事、それ以外の「○○○」や「×××」、「□□□」のその列における実施日も全て白色で塗り潰される様にする、という事を意味します。  同様に、ある列において「▲▲▲」の予定日を過ぎた場合には、その列における「▲▲▲」の実施日は無論の事、それ以外の「○○○」や「×××」、「□□□」のその列における実施日も全て灰色で塗り潰される様にする、という事を意味します。  理由は想像もつきませんが、兎に角「▲▲▲」の予定日を特別扱いするという事なのでしょうか?  それに、その様な条件を付け加えた場合には、本日の日付が「あるセルに入力されている実施日の日付」を過ぎている場合(←灰塗の条件)で、尚且つ、同じ列の9行目が空欄となっていた場合(←白塗りの条件)には、実施日が入力されている方のセルは灰色と白色のどちらで塗り潰せば良いのでしょうか?

13question
質問者

補足

回答ありがとうございます ご質問の件についてですが、絶対参照になっているのは「なってしまった」だけで 例えば○○○の項目にある予定日のEの列にはE8セルに対する白塗指定として「=$E$8=""」を使用し 同じ項目のF列であれば「=$F$8=""」を使用 また、別項目である▲▲▲についてはD列に「=$D$10=""」 □□□の予定日には「=$D$14=""」や「=$E$14=""」がセルに設定してあり 特定の項目に対して特別な扱いは行っていません 混乱を招く記載ミスでした、すいません。 

  • kagakusuki
  • ベストアンサー率51% (2610/5101)
回答No.2

>それは、「=○8<C3」→書式灰塗 という条件付き書式を実施日のセルだけではなく、予定日のセルにまで設定しているからではないかと推測致します。 という箇所に関しては、説明が不足しておりました。  Excelでは空欄のセルの値は、数値の0と同じ扱いになりますから、C3セルに本日の日付という0よりも大きな値が入力されていて、尚且つ、実施日のセルが空欄である場合には、「=実施日<本日の日付」→「=空欄<『2013/12/16』のシリアル値」→「=0<41624」という事になりますから、条件付き書式の条件が満たされているため、塗りつぶしが行われる訳です。

  • kagakusuki
  • ベストアンサー率51% (2610/5101)
回答No.1

>一度入力された実施日のセルをデリートしても予定日のセルが灰塗のままで戻りません。  それは、「=○8<C3」→書式灰塗 という条件付き書式を実施日のセルだけではなく、予定日のセルにまで設定しているからではないかと推測致します。 >※○の中には相関列文字を入力 という箇所の、「相関列」なる様後に関する説明が無いため良く解りませんが、質問者様がやりたい事は以下の様な事であると考えて宜しいのでしょうか? ●実施日に日付が入力されていない状態で、本日の日付が予定日の3日前以降(3日前も含む)になった場合には、その予定日のセルを緑色で塗り潰す ●実施日に日付が入力されていない状態で、本日の日付が予定日の前日になった場合には、その予定日のセルを黄色で塗り潰す ●実施日に日付が入力されていない状態で、本日の日付が予定日に達するか、又は予定日を過ぎた場合には、その予定日のセルを赤色で塗り潰す ●実施日に日付が入力されている場合には、その上の予定日のセルを灰色で塗り潰す ●本日の日付が実施日を過ぎている場合には、その実施日のセルを灰色で塗り潰す ●その他の場合には、塗り潰しを行わない  もし、上記の考えの通りで宜しければ、白で塗り潰す条件付き書式は不要で、以下の様な4つの条件付き書式を$D$7:$G$16の範囲に設定されると良いと思います。 ●書式に緑色の塗りつぶし:「数式を使用して~」の数式に =AND(MOD(ROW()-ROW($6:$6),2)=1,ISERROR(1/DAY(D8)),TODAY()>INT(D7)-4,TODAY()<INT(D7)-1)   ●書式に黄色の塗りつぶし:「数式を使用して~」の数式に =AND(MOD(ROW()-ROW($6:$6),2)=1,ISERROR(1/DAY(D8)),TODAY()=INT(D7)-1) ●書式に赤色の塗りつぶし:「数式を使用して~」の数式に =AND(MOD(ROW()-ROW($6:$6),2)=1,ISNUMBER(1/DAY(D7)),ISERROR(1/DAY(D8)),TODAY()>=INT(D7)) ●書式に灰色の塗りつぶし:「数式を使用して~」の数式に =AND(ISNUMBER(1/DAY(D7)),OR(AND(MOD(ROW()-ROW($6:$6),2)=0,TODAY()>INT(D7)),AND(MOD(ROW()-ROW($6:$6),2)=1,ISNUMBER(1/DAY(D8)))))

13question
質問者

補足

早速のご教授ありがとうございます > ※○の中には相関列文字を入力 >この一通りの設定を、項目の上行と下行に対して参照関係になるようにセル位置の指定は変更してあります >(E列の数式にはEを、F列の数式にはFを という具合です) は ※○の中には相関列文字を入力 (E列の数式にはEを、F列の数式にはFを という具合です) この一通りの設定を、項目の上行と下行に対して参照関係になるようにセル位置の指定は変更してあります でした 修正します。 【追加】 予定日セルには記載の条件付き書式を設定していますが 実施日セルには ・「数式を使用して~」→「次の数式を~」に「=$○$9=""」 書式白塗 ・「数式を使用して~」→「次の数式を満たす場合に~」に「=$○$9<$C$3」→書式灰塗 の条件を設定してあります 使い慣れない関数をいくつも記載して頂いている為 調べながら解読をしているので 回答が遅くなると思いますが 一通り調べて調整してからまた返答させていただこうと思います ありがとうございます!

関連するQ&A