• ベストアンサー

エクセルである日付以前のデータに色を!!

エクセルの表でBB1のセルに入力した日付以前の日付が入力されているセルに色を付けたいのですが、どのようにしたら? 条件式書式を使おうかと思っているのですが・・・ 色々な方法を教えてください

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

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

既に回答が出ていますが、 (1)VBA     ・バッチ処理     ・即時処理(イベント利用) (2)条件付書式の操作    日付けは詰まるところシリアル値(11月19日は   37579)なので、ある数より小さい値のセルに   色をつけるに帰着します。 (3)関数式--関数式ではセルやフォントに色を付けら  れないので、この方法では実現不能。 念のため操作は たとえのデータとしてA1:A5に 2002/11/2 2002/3/5 2002/4/5 2002/10/12 2002/4/30 といれて E1にたとえとして2002/5/1を入れる。 (1)A1:A5を範囲指定 (2)書式 (3)条件付指定 (4)セルの値が (5)次の値より小さい (6)E1 (7)書式 (8)パターン (9)OK (10)OK でA2,A3,A5のセルに色が付く。

mikanjam
質問者

お礼

詳しく教えてくださって有難うございます。早速設定しました!

その他の回答 (5)

  • ka3
  • ベストアンサー率18% (36/194)
回答No.5

 [条件付き書式(D)]で簡単にできました。

回答No.4

こんばんわ。マクロの記述ミスをしてしまいました。前回のコードは破棄して下記のコードをコピー&ペーストして下さい。 1.データの入っているブックを立ち上げ、ALT+F11キーを押してVBE画面を表示させ、画面左上のVBAProjectと書かれている上にマウスポインターを合わせて右クリック後、挿入→クラスモジュールを順にクリックし、表示された右側の白い部分に下記のコードをコピー&ペーストする。 Private Sub App_SheetChange(ByVal Sh As Object, ByVal Target As Range) Dim myCnt As Integer Dim i As Integer If Target.Address <> Range("BB1").Address Then Exit Sub myCnt = Cells(Rows.Count, 1).End(xlUp).Row For i = 2 To myCnt If Cells(i, 1).Value < Range("BB1").Value Then Cells(i, 1).Interior.ColorIndex = 34 End If Next i End Sub 2.次に画面左上のVBAProjectと書かれている下のThisWorkbookをダブルクリックし、表示された右側の白い部分に下記のコードをコピー&ペーストする。 Dim myClass As New Class1 Private Sub Workbook_Open() Set myClass.App = Application End Sub 3.保存してブックを終了し、再度立ち上げる。 BB1に値を入力してみて下さい。貴方様の思い通りの動作が実現できます。 ご不明な点・不具合等がありましたら、ご遠慮なくお知らせ下さい。私のわかる範囲でご一緒に考えていきたいと思います。

mikanjam
質問者

お礼

いつも丁寧に記入して頂いて有難うございます。今回は簡単な書式設定で行うことにしました。また教えてください。

回答No.3

こんばんわ。1行目をタイトル行・BB1のセルに入力した日付以前の日付が入力されているセルをA列としてサンプルマクロを組んでみました。次のように操作してみて下さい。 Public WithEvents App As Application Private Sub App_SheetChange(ByVal Sh As Object, ByVal Target As Range) Dim myCnt As Integer Dim i as Integer If Target.Address <> Range("BB1").Address Then Exit Sub myCnt = cells(rows.count,1).end(xlup).Row for i = 2 to myCnt If cells(i,1).value < range("BB1").value Then cells(i,1).Interior.ColorIndex = 34 End If End Sub 2.次に画面左上のVBAProjectと書かれている下のThisWorkbookをダブルクリックし、表示された右側の白い部分に下記のコードをコピー&ペーストする。 Dim myClass As New Class1 Private Sub Workbook_Open() Set myClass.App = Application End Sub 3.保存してブックを終了し、再度立ち上げる。 BB1に値を入力してみて下さい。貴方様の思い通りの動作が実現できます。 ご不明な点・不具合等がありましたら、ご遠慮なくお知らせ下さい。私のわかる範囲でご一緒に考えていきたいと思います。

回答No.2

お考えの通り、条件付日付が一番簡単じゃないでしょうか? でしたら、セルに色をつけるとか、文字の色を変えるとか、フォントを変えるとかの選択が出来ますから。 色々とあるでしょうが、これが一番のお勧めですが。

  • taknt
  • ベストアンサー率19% (1556/7783)
回答No.1

まず マクロを使うやり方があります。 Private Sub Worksheet_Change(ByVal Target As Range) If Target.value < range("BB1").value Then Target.Interior.ColorIndex = 2 End If End Sub 未確認ですが、こんな感じにすると赤くなると思います。