エクセルVBAでのスケジュールのタスク
以下は、私たちが緑にスケジュール上にあるタスクの背景色を設定し、赤に予定より遅れているタスクの背景色を設定しますエクセルVBAでプログラムを見ていきます。
状況:
シート1に、我々は3つのタスク(X、Y、Z)を持っています。 「1」は、タスクが完了していることを示しています。今日の日付を含めへとアップし、すべての列の「1」が存在した場合にタスクがスケジュール通りにあります。今日では、6-6月です。タスクXとYは、スケジュール上にあります。タスクZは、スケジュール(NO “1” セルにおけるE8)の背後にあります。
ワークシートの変更イベントを作成します。ワークシート上のセルを変更したときに、ワークシート変更イベントに追加されたコードは、Excel VBAで実行されます。
-
Visual Basicエディターを開きます。
プロジェクトエクスプローラでのシート1(シート1)2.ダブルクリックします。
3.左側のドロップダウンリストからワークシートを選択してください。右のドロップダウンリストから、変更を選択します。
ワークシートの変更イベントに次のコード行を追加します。
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は、自動的に緑色になります。