スケジュール管理表を作成 ⑨ 実行中の作業を中断
先日から、スケジュール管理表をExcelで作成している。
infoment.hatenablog.com
今日も、前回の続きから。
例えば、こんな予定を立てていたとする。
ところが「●●ユニット」を構想し始めて30分経った頃、上司からの指示で
打ち合わせを行うことになった。この時、スケジュールとしては、
① 一旦、●●ユニットの構想を終了。終了時刻は9:30。
② 今から行う打ち合わせを追加。
③ 打ち合わせ後に再開予定の構想を追加。
この作業が地味に面倒くさいので、「中断」ボタンを設けることにした。
ついでに、残り時間などの再計算を行うための「更新」ボタンも追加した。
コマンドボタンのオブジェクト名
- 中断ボタン cb中断
- 更新ボタン cb更新
↓ シートモジュールに記載。
Private Sub cb更新_Click() Call UpdateTable End Sub Private Sub cb中断_Click() Call SetInterruption End Sub
↓ 標準モジュールに記載。
Sub SetInterruption() Dim Tb As ListObject Set Tb = ActiveSheet.ListObjects(1) ' 現在作業中案件の終了時刻セル。 Dim PresentRange As Range Set PresentRange = Tb.ListRows(Tb.ListRows.Count).Range(列名.en終了時刻).End(xlUp).Offset(1) ' 現在作業中案件のテーブル行番号。 Dim RowIndex As Long RowIndex = PresentRange.row - Tb.Range(1).row ' 中断後に行う作業と、中断作業を再開するための行を一つずつ追加。 Tb.ListRows.Add RowIndex + 1 Tb.ListRows.Add RowIndex + 1 ' 中断作業再開の項目は、現在進行中の項目から移植する。 Tb.ListRows(RowIndex + 2).Range(2).Resize(, 2).Value = Tb.ListRows(RowIndex).Range(2).Resize(, 2).Value ' 中断する作業は、中断ボタンを押した時点で一旦終わったこととする。 ' 入力される時間がことなる場合(事後で中断ボタンを押す場合など)は、終了時刻を手入力で修正する。 PresentRange = wf.MRound(Time, "0:15") ' 中断後に行う実施内容をそのまま入力できるよう、該当セルを選択。 Tb.ListRows(RowIndex + 1).Range(2).Select End Sub
さてそれでは、部長と打ち合わせのため席を立つところを再現してみよう。
この操作を録画した時刻が23時前であるため、中断した時刻が9:30ではなくなって
いるが、意図したことは伝わっただろうか。
ということで、本日はここまで。
次回は、総まとめを行います。
参考まで。