[go: up one dir, main page]
More Web Proxy on the site http://driver.im/
  • 締切済み

エクセル2003 条件付書式 

A1のセルは常時今日の日付が入力されていて、A2とB2のセルは空欄です(日付を入力予定)。 この状態から、B2のセルの「条件付き書式」について教えてください。 A2に日付が入力されていないときはB2は空白セル、A2に日付が入力され、かつA1よりプラス30日以上であればB2の空白セルに赤枠が入り、B2のセルに何かしら数値が入力されればB2の赤枠は消える。  としたいのですがどう設定すればよいでしょうか?よろしくお願いいたします。

みんなの回答

  • okormazd
  • ベストアンサー率50% (1224/2412)
回答No.7

#1です。 ちょっと質問者は嫌な人なのかもしれないな。 質問のとおり、 「A2に日付が入力されていないときはB2は空白セル、A2に日付が入力され、 かつA1よりプラス30日以上であればB2の空白セルに赤枠が入り、 B2のセルに何かしら数値が入力されればB2の赤枠は消える。」 ようにしたつもりだし、実際にそのように動作することは確認してある。 ただ、お礼に書いてあることと、始めの質問の内容が違っしまっているが。 <A2に手入力> A1: 2011/4/25 A2: 2011/3/1 B2: 空白(赤枠) これは何だ? 「A2に日付が入力され、かつA1よりプラス30日以上」 じゃないじゃないか。A1が2011/4/25ならA1よりプラス30日以上というなら、A2は2011/5/24より後の日付のはずだ。 2011/5/25、2011/5/26、・・・ 2011/3/1というんじゃうまくいくはずないや。もうちょっとまじめにやろうよ。 ときに、条件付き書式の設定はちゃんとできるんだろうね。

  • basic_gg
  • ベストアンサー率50% (14/28)
回答No.6

(1)"A2に日付が入力され"とあるので  A2に日付が入力された場合にだけ対応するわけにもいかないので、  A2の書式設定を日付1997/3/4にしておく。 (2)"B2のセルに何かしら数値が入力されれば"とあるので  B2に自分で何かしら入力すると考える。  数値の場合も文字の場合もあるかもしれないが、  数値の場合にだけ対応する。 (3)"A2に日付が入力されていないときはB2は空白セル"とあるが、  自分で何かしら入力すると考えるので、式は設定しない。 (4)Excel2000なので罫線の赤色は確認していない。  =ISNUMBER(A2)*(A2>=(A1+30))*NOT(ISNUMBER(B2))

fdjfioi
質問者

お礼

回答ありがとうございます。 やってみましたが思っていたようには表示されませんでした。 具体的には、A1に =TODAY() を入力し、A2には質問日を手入力、B2には回答日を手入力する予定です。 質問日から30日以上経過した時点で、アラートとして回答日(B2セル)を赤枠で表示させ、回答があった時点で回答日をB2セルに入力し、赤枠が消えるようにしたいのですが。。。 たとえば A1: 2011/4/25 A2: 空白 B2: 空白 ↓ <A2に手入力> A1: 2011/4/25 A2: 2011/3/1 B2: 空白(赤枠) ↓ <B2に手入力> A1: 2011/4/25 A2: 2011/3/1 B2: 2011/4/25(赤枠なし)

  • KURUMITO
  • ベストアンサー率42% (1835/4283)
回答No.5

A2セルにデータが入力されていなければB2セルは空白にする。というのは通常はB2セルに=IF(A2="",B2="")の式を入力する必要があります。ところがB2セルにデータを入力したときはこの式は消されてしまいます。条件付き書式で上記のことはできません。 このような場合にはマクロを使わざるを得ませんね。 シート見出しで該当のシート名を右クリックして「コードの表示」を選択します。 表示の右側の空白の窓には次のコードを入力します。 Private Sub Worksheet_Change(ByVal Target As Range) If Range("A2") = "" Then Range("B2") = "" End If If Range("A2").Value >= Range("A1").Value + 30 Then Range("B2").Borders.ColorIndex = 3 Else Range("B2").Borders.LineStyle = xlLineStyleNone End If If Range("B2") <> "" Then Range("B2").Borders.LineStyle = xlLineStyleNone End If End Sub これでお望みのことができるようになるでしょう。

fdjfioi
質問者

お礼

回答ありがとうございます。 やってみましたが思っていたようには表示されませんでした。 具体的には、A1に =TODAY() を入力し、A2には質問日を手入力、B2には回答日を手入力する予定です。 質問日から30日以上経過した時点で、アラートとして回答日(B2セル)を赤枠で表示させ、回答があった時点で回答日をB2セルに入力し、赤枠が消えるようにしたいのですが。。。 たとえば A1: 2011/4/25 A2: 空白 B2: 空白 ↓ <A2に手入力> A1: 2011/4/25 A2: 2011/3/1 B2: 空白(赤枠) ↓ <B2に手入力> A1: 2011/4/25 A2: 2011/3/1 B2: 2011/4/25(赤枠なし)

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

質問はセルの値と条件付書式とを行き来している。 また手入力項目と関数などの連動項目ともはっきりしない。 ーー (1)A1は手入力で本日日付うお入れているか、または関数まのTODAY()ーこの点問題なし (2)A2セルとB2セルについて   A2の入力--空白ーー日付でないー日付(条件満たさない)--日付+30日以上(条件を満たす) 対応して   B2の結果--空白ーー空白ーーーー空白ーーーーーーーーーー日付+赤枠 セルの値については これらのように連合させるには、関数をB2に設定する必要がある。 しかし>B2のセルに何かしら数値が入力されれば、とB2に手入力するような表現がある。 どちらですか。 A2が日付でないーーーーーーーB2空白 A2が日付で条件満たさないーーB2空白 はB2に関数でも入れないと実現できないのではないか(VBAでやれば別だが、質問はVBAの話ではなかろう) >B2のセルに何かしら数値が入力されればB2の赤枠は消える も、どういう理由でこのようにするのか不思議?日付で条件に合わ無ければ「赤枠をつけない」などのようにするのが普通では。 === 単純にA2とB2のデータ(セルの値)は、相互に独立した手作業入力で、B2のセルの値について、日付+30日以上(条件を満たす)であれば条件付き書式で経線を囲むだけで良いのか。 、」

fdjfioi
質問者

補足

返信ありがとうございます。 具体的には、A1に =TODAY() を入力し、A2には質問日を手入力、B2には回答日を手入力する予定です。 質問日から30日以上経過した時点で、アラートとして回答日(B2セル)を赤枠で表示させ、回答があった時点で回答日をB2セルに入力し、赤枠が消えるようにしたいのですが。。。 たとえば A1: 2011/4/25 A2: 空白 B2: 空白 ↓ <A2に手入力> A1: 2011/4/25 A2: 2011/3/1 B2: 空白(赤枠) ↓ <B2に手入力> A1: 2011/4/25 A2: 2011/3/1 B2: 2011/4/25(赤枠なし)

  • aokii
  • ベストアンサー率23% (5210/22063)
回答No.3

A2のセルに文字列が入力されたときにはB2の赤枠は消し、B2のセルに文字列が入力されたときにはB2の赤枠は消さないことにして、以下の方法でいかがでしょう。 =AND(A1+30<=A2,NOT(ISNUMBER(B2)))

fdjfioi
質問者

お礼

回答ありがとうございます。 やってみましたが思っていたようには表示されませんでした。 具体的には、A1に =TODAY() を入力し、A2には質問日を手入力、B2には回答日を手入力する予定です。 質問日から30日以上経過した時点で、アラートとして回答日(B2セル)を赤枠で表示させ、回答があった時点で回答日をB2セルに入力し、赤枠が消えるようにしたいのですが。。。 たとえば A1: 2011/4/25 A2: 空白 B2: 空白 ↓ <A2に手入力> A1: 2011/4/25 A2: 2011/3/1 B2: 空白(赤枠) ↓ <B2に手入力> A1: 2011/4/25 A2: 2011/3/1 B2: 2011/4/25(赤枠なし)

  • swelter
  • ベストアンサー率46% (12/26)
回答No.2

条件付書式の設定において、 条件1. セルの値が 、 次の値に等しくない 、 ="" で、書式の設定を枠なしに設定し、 条件2. 数式が 、 =$A&2>=$A$1+30 で、書式の設定に赤枠に設定してみては如何でしょうか。

fdjfioi
質問者

お礼

回答ありがとうございます。 やってみましたが思っていたようには表示されませんでした。 具体的には、A1に =TODAY() を入力し、A2には質問日を手入力、B2には回答日を手入力する予定です。 質問日から30日以上経過した時点で、アラートとして回答日(B2セル)を赤枠で表示させ、回答があった時点で回答日をB2セルに入力し、赤枠が消えるようにしたいのですが。。。 たとえば A1: 2011/4/25 A2: 空白 B2: 空白 ↓ <A2に手入力> A1: 2011/4/25 A2: 2011/3/1 B2: 空白(赤枠) ↓ <B2に手入力> A1: 2011/4/25 A2: 2011/3/1 B2: 2011/4/25(赤枠なし)

  • okormazd
  • ベストアンサー率50% (1224/2412)
回答No.1

質問の条件のままなら、 B2の条件付き書式の式は、 =AND($A$2>=$A$1+30,$B$2="") でいいんだろうか、これを回答すると、追加でこうしたいけどどうしたらいいかなんて聞かれそうだな。

fdjfioi
質問者

お礼

回答ありがとうございます。 やってみましたが思っていたようには表示されませんでした。 具体的には、A1に =TODAY() を入力し、A2には質問日を手入力、B2には回答日を手入力する予定です。 質問日から30日以上経過した時点で、アラートとして回答日(B2セル)を赤枠で表示させ、回答があった時点で回答日をB2セルに入力し、赤枠が消えるようにしたいのですが。。。 たとえば A1: 2011/4/25 A2: 空白 B2: 空白 ↓ <A2に手入力> A1: 2011/4/25 A2: 2011/3/1 B2: 空白(赤枠) ↓ <B2に手入力> A1: 2011/4/25 A2: 2011/3/1 B2: 2011/4/25(赤枠なし)

関連するQ&A