Excel VBA 「カー計簿」洗車・オイル交換の計算
Excel VBA 「カー計簿」次回洗車・オイル交換
オイル交換や洗車を行った時に自動的に次回の交換時期を自動計算、自動表示します。
メニューに次回洗車・オイル交換時期の表示
オイル交換や洗車を行う時期をメニューに表示されるようにします。
次回洗車・オイル交換のマスタの構成
メンテナンスに洗車、オイル交換を設定します。
洗車やオイル交換のデータを登録する際、日付と走行距離をセットします。(黄枠)
洗車やオイル交換の次回実施する期間(日数)と距離(走行キロ数)をマスタに事前に登録しておきます。
上図の例では、洗車は3ヶ月後、3000Kmで、オイル交換は半年後、5000Kmで交換予定となっています。
次回洗車・オイル交換の内部処理
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 |
Dim Sh_Mst As Worksheet Dim rc As Integer Dim Wk_TLNext As Long, w_i As Long Const OIL_CHANGE As String = "エンジンオイル交換" Const CAR_WASH As String = "洗車" Set Sh_Mst = Worksheets("Mst") Wk_MstLine = Sh_Mst.Cells(Rows.Count, 13).End(xlUp).Row '''Mstの最終行 If Cmb_Komok = CAR_WASH Then For w_i = 1 To Wk_MstLine If Sh_Mst.Cells(w_i, 13) = CAR_WASH Then '''13列目が"洗車"のとき以下の処理を行います Sh_Mst.Cells(w_i, 14) = txt_Date wk_Nisuu = Sh_Mst.Cells(w_i, 16).Value Wk_Odo = Sh_Mst.Cells(w_i, 17).Value dtDate = txt_Date.Value Sh_Mst.Cells(w_i, 18) = DateAdd("d", wk_Nisuu, dtDate) Sh_Mst.Cells(w_i, 19) = Sh_Mst.Cells(w_i, 15).Value + Wk_Odo wk_date = Sh_Mst.Cells(2, 18).Value Wk_Odo = Sh_Mst.Cells(2, 19).Value lbl_NextChangeWash.Caption = "次回洗車日:" & wk_date & " (" & Wk_Odo & ")" Exit For End If Next w_i End If |
登録処理に項目マスタの内容が”洗車”であった場合の処理を追加します。
洗車実施日をマスタのセル(w_i, 14)にセット。
洗車実施日のときの備考のODO(距離)をマスタのセル(w_i, 15)にセット。
DateAdd(“d”, wk_Nisuu, dtDate)で日数計算した値をセル(w_i, 18)にセット。
走行距離ODOも同様に距離加算してセル(w_i, 19)にセット。
メニューのラベル(lbl_NextChangeWash.Caption)に”次回洗車日:” & wk_date & “と” (” & Wk_Odo & “)”をセットします。
ラベル(lbl_NextChangeWash)に次回実施日、次回走行距離が表示されます。