/ / Excel VBAでスケジュールのタスク

Excel VBAでのスケジュールのタスク

以下では、 Excel VBA 背景色を設定する スケジュールどおりのタスク 緑に設定し、スケジュールの遅いタスクの背景色を赤に設定します。

状況:

Sheet1には3つのタスク(X、Y、Z)があります。 「1」は、タスクが完了したことを示す。今日の日付までのすべての列に「1」が存在する場合、タスクはスケジュールどおりに実行されますが、今日は6-junです。タスクXとYはスケジュールどおりです。タスクZは予定より遅れています(セルE8では "1"ではありません)。

Excel VBAでのスケジュールのタスク

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

1. Visual Basic Editorを開きます。

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

3.左のドロップダウンリストから「ワークシート」を選択します。右側のドロップダウンリストから変更を選択します。

Excel VBAでのワークシート変更イベント

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

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

Dim i As Integer, j As Integer

5. Do Whileループを追加します。

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


    i = i + 1
Loop

説明:i = 0の場合、Excel VBAはタスクXをi = 1、タスクYなどでチェックします。Excel VBAは、セル(6 + i、1).Value 空(チェックするタスクはこれ以上ありません)。

Do Whileループに次のコード行(6,7,8)を追加します。

6.変数jを値0で初期化します。

j = 0

7.タスクがスケジュールどおりであることを前提に、タスクの背景色を緑色に設定します(これはもちろん当てはまりません)。

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

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

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

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

説明: i = 0、j = 0の場合、Excel VBAはセルB6をチェックします。 i = 0、j = 1の場合、Excel VBAはセルC6などをチェックします。今日の日付を含むすべての列に「1」が存在する場合、タスクはスケジュールどおりに実行されます。タスクの背景色を赤に設定します。

9.プログラムをテストします。たとえば、6-junのタスクZが完了したことを示します。その結果、タスクZは自動的に緑に変わります。

スケジュール結果に関するタスク

また読む: