• ベストアンサー

Exelマクロ日付の自動計算 契約期間と抵触の日

契約期間の管理をしているエクセルファイルがあります。 A列に契約開始日、B列に契約終了日、C列にその契約期間(月数)があり、終了日が近くなったら同じ月数だけ契約を更新します。 そしてD列に、その契約の最長期限に抵触する日付があります。 契約開始日からC列の月数だけ更新を重ねていった場合に、抵触する日を越えた最初の契約開始日をE列に自動で表示させたいです。 自動計算のマクロをご教授ください。

質問者が選んだベストアンサー

  • ベストアンサー
  • f272
  • ベストアンサー率46% (8467/18128)
回答No.1

こんな感じ Sub test() Set r = Range("A2") Do If IsEmpty(r) Then Exit Do s = r.Value c = r.Offset(, 2).Value e = r.Offset(, 3).Value e1 = s Do e1 = DateAdd("m", c, e1) If e1 >= e Then Exit Do Loop r.Offset(, 4).Value = e1 Set r = r.Offset(1) Loop End Sub でも =EDATE(A2,C2*ROUNDUP((D2-A2)/C2/30-0.06,0)) こんな関数でもできそうですね。

sakimi12
質問者

お礼

ありがとうございます! 関数の方は一部上手くいかなかったデータがあったので、マクロの方を利用させて頂きました!上手くいきました。 非常に助かりました。

関連するQ&A