[Excel][VBA] 時間操作、時間加減算

時間操作、というとカッコイイですが、単純なメモとして。

Range(“B2”) = Range(“A2”)
シート入力時にはいいのですが、いったんシートに入ると
文字列として入力していなければ時間はシリアル値に変換されます。
シリアル値になった時間はそのままコピーしても出ません。

Range(“B3”) = CStr(Range(“A2”))
文字列として扱っても出ません。

ではどうするか……。

Range(“B4”) = Format(Range(“A2”), “HH:mm:ss”)
Format関数を使う事で書式を設定する事ができます。

Range(“B5”) = WorksheetFunction.Text(Range(“A2”), “HH:mm:ss”)
Excelワークシートを使い慣れている人は、
「そんなの、書式設定すればいいでしょう?」
と言うかもしれません。
VBAでやるときはWorksheetFunctionを使います。これでも出ます。

Range(“B6”) = Format(DateAdd(“H”, 1, Range(“A2”)), “HH:mm:ss”)
DateAdd関数 加算するデータ 加算する数値 元のデータ
とDateAdd関数により、時間データを加算させる事ができます。

駆け足でしたが時間を扱うマクロを使う時は覚えておくと便利ですよっ