この記事では、ワークブックイベントを使用して、現在の日付よりも大きい日付を強調表示します。

この例の生データは、毎日の販売目標と達成された目標で構成されています。

ArrowMain

現在の日付よりも大きい日を強調したいと思います。

ArrowOutput

ロジックの説明

この記事では、「SetColor」と「ResetColor」の2つのマクロを作成しました。

「SetColor」マクロは、現在の日付よりも大きい日付を強調表示するために使用されます。

「ResetColor」マクロは、指定されたソースのフォーマットをリセットするために使用されます。

2つのワークブックイベント、ワークブックオープンイベントとクローズイベント前のワークブックを使用しました。

ワークブックを開くと、ワークブックを開くイベントが発生します。ブックを開くと、「SetColor」マクロが自動的に実行されます。

クローズイベント前のワークブックは、ワークブックオープンイベントに関連付けられたイベントをリセットするために使用されます。

コードの説明

If IsDate(ActiveCell.Value)And ActiveCell.Value> Date Then上記のコードは、セルの値が日付データ型であり、現在の日付より大きいかどうかを確認するために使用されます。

ActiveCell.Interior.Color = RGB(0、255、0)

上記のコードは、アクティブセルに緑色を割り当てるために使用されます。

Set Source = Range( “A1″、Range( “A1″)。SpecialCells(xlCellTypeLastCell))

上記のコードは、Excelシート内のすべてのデータを選択するために使用されます。

コードについては以下に従ってください

Option Explicit

Sub SetColor()

If IsDate(ActiveCell.Value) And ActiveCell.Value > Date Then

ActiveCell.Interior.Color = RGB(0, 255, 0)

Else

ActiveCell.Interior.Color = RGB(221, 235, 247)

End If

End Sub

Sub ResetColor()

'Declaring variables

Dim Rng, Source As Range

Dim IntRow As Integer, IntCol As Integer

'Specifying all the cells as source range

Set Source = Range("A1", Range("A1").SpecialCells(xlCellTypeLastCell))

'Looping through all the cells

For Each Rng In Source

'Checking whether cell contains a value

If Not IsEmpty(Rng) Then

'Checking whether cell contain value of date data type

If IsDate(Rng.Value) Then

Rng.Select



'Assigning Green color if value is greater than today date

If DateValue(Rng.Value) > Date Then

ActiveCell.Interior.Color = RGB(0, 255, 0)

Else

ActiveCell.Interior.Color = RGB(221, 235, 247)

End If

End If

End If

Next Rng

End Sub

'Insert below code in ThisWorkbook module

Option Explicit

Private Sub Workbook_Open()

With Worksheets("Main")

'Event fired on entry to worksheet

.OnEntry = "SetColor"

'Event fired on sheet activation

.OnSheetActivate = "ResetColor"



End With

End Sub

Private Sub Workbook_BeforeClose(Cancel As Boolean)



With Worksheets("Main")

.OnEntry = ""

.OnSheetActivate = ""

End With

End Sub

このブログが気に入ったら、FacebookやFacebookで友達と共有してください。

皆様からのご意見をお待ちしております。私たちの仕事を改善し、あなたのために改善する方法をお知らせください。 [email protected]までご連絡ください