質問: Format(o \ 60, "00") & ":" & Format(o Mod 60, "00") End Sub
回答: 考え方だけ。 2つの期間(T1, T2)と(T3, T4)があってそれがどう重ねっているか(もしくは重なっていないのか)を判定する必要があります。 T1 < T2, T3 < T4であることを前提に、 1. T4 < T1またはT2 < T3なら重なっていない 2. T1 <= T3 AND T2 <= T4 なら重なっている。T2 - T3が重なった時間 3. T3 <= T1 AND T4 <= T2 なら重なっている。T4 - T1が重なった時間 ということで、処理を組めばいけるかと。 何回も同じ処理があるようならクラス化して処理したほうが良いと思います。 蛇足ですが、 C++でboostが使えるのなら、posix_time.time_periodというクラスを使用すれば2つの期間の重なりやその重なった期間の計算が用意されていて便利です。