Microsoft ExcelでVBAを使用して日付に基づいて、フォントの色を変更し
この記事では、ワークブックイベントを使用して、現在の日付よりも大きい日付を強調表示します。
この例の生データは、毎日の販売目標と達成された目標で構成されています。
現在の日付よりも大きい日を強調したいと思います。
ロジックの説明
この記事では、「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]までご連絡ください