以下は、私たちが緑にスケジュール上にあるタスクの背景色を設定し、赤に予定より遅れているタスクの背景色を設定しますエクセルVBAでプログラムを見ていきます。

状況:

シート1に、我々は3つのタスク(X、Y、Z)を持っています。 「1」は、タスクが完了していることを示しています。今日の日付を含めへとアップし、すべての列の「1」が存在した場合にタスクがスケジュール通りにあります。今日では、6-6月です。タスクXとYは、スケジュール上にあります。タスクZは、スケジュール(NO “1” セルにおけるE8)の背後にあります。

Tasks on Schedule in Excel VBA

ワークシートの変更イベントを作成します。ワークシート上のセルを変更したときに、ワークシート変更イベントに追加されたコードは、Excel VBAで実行されます。

  1. Visual Basicエディターを開きます。

プロジェクトエクスプローラでのシート1(シート1)2.ダブルクリックします。

3.左側のドロップダウンリストからワークシートを選択してください。右のドロップダウンリストから、変更を選択します。

Worksheet Change Event in Excel VBA

ワークシートの変更イベントに次のコード行を追加します。

Integer型の2つの変数を宣言します。4.。

Dim i As Integer, j As Integer

do-while文を追加します。5.。

Do While Cells(6 + i, 1).Value <> ""

i = i + 1

Loop

説明:私は1等タスクY = iについては0と、Excel VBAチェックタスクXが、=ため

細胞(6 + I、1).Valueのが空のときエクセルVBAは(これ以上のタスクが確認していないため)do-while文を残します。

do-while文に(6、7、8時)は、次のコード行を追加します。

6.初期値0を持つ変数j

j = 0

7.(これは必ずしももちろん当てはまらない)タスクがスケジュール上にあると仮定すると緑色にタスクの背景色を設定します。

Cells(6 + i, 1).Interior.ColorIndex = 4

別のドWhileループを追加します8。

Do While Cells(4, 2 + j).Value <= Date

If Cells(6 + i, 2 + j).Value = 0 Then Cells(6 + i, 1).Interior.ColorIndex = 3

j = j + 1

Loop

注:日付関数は、今日の日付を返します。

説明:私はJ = 0、エクセルVBAをチェック電池B6、= 0の場合。 「1」は、今日の日付を含めへとアップすべての列に存在する場合、私は= 0の場合は、J = 1、エクセルVBAチェックセルC6などAタスクがスケジュールにあります。エクセルVBAは「0」を見つけた場合、それが赤にタスクの背景色を設定します。

9.テストプログラム。例えば、6ジュンにタスクZが完了したことを示しています。その結果、タスクZは、自動的に緑色になります。

Tasks on Schedule Result