日付・時刻の差分を取得するにはDateDiff関数を使います。
第1パラメーターの設定値により時間間隔の単位を指定します。
時間間隔 | 設定値 |
---|---|
年 | yyyy |
月 | m |
日 | d・y |
時 | h |
分 | n |
秒 | s |
四半期 | q |
曜日 | w |
週 | ww |
実行プログラム
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 27 28 29 30 31 |
Sub Sample8_9_1() ' 年 Cells(2, 4).Value = DateDiff("yyyy", Cells(2, 2).Value, Cells(2, 3).Value) ' 月 Cells(3, 4).Value = DateDiff("m", Cells(3, 2).Value, Cells(3, 3).Value) ' 日 Cells(4, 4).Value = DateDiff("d", Cells(4, 2).Value, Cells(4, 3).Value) Cells(5, 4).Value = DateDiff("y", Cells(5, 2).Value, Cells(5, 3).Value) ' 時 Cells(6, 4).Value = DateDiff("h", Cells(6, 2).Value, Cells(6, 3).Value) ' 分 Cells(7, 4).Value = DateDiff("n", Cells(7, 2).Value, Cells(7, 3).Value) ' 秒 Cells(8, 4).Value = DateDiff("s", Cells(8, 2).Value, Cells(8, 3).Value) ' 四半期 Cells(9, 4).Value = DateDiff("q", Cells(9, 2).Value, Cells(9, 3).Value) ' 曜日 Cells(10, 4).Value = DateDiff("w", Cells(10, 2).Value, Cells(10, 3).Value) ' 週 Cells(11, 4).Value = DateDiff("ww", Cells(11, 2).Value, Cells(11, 3).Value) End Sub |
実行結果
※”w”は指定期間に出現する曜日の回数です。
上記のプログラムの場合、2010/8/2から2010/8/22の期間中に、2010/8/2の曜日(月曜日)が何回出現するのかを表示しています。
月曜日は8/9、8/16の2回出現するので、”2″と表示されました。
memo
MSDNでは『平日』と記載されています。VBEのヘルプでは『週日』と記載されています。
どちらも英語版のMSDN、ヘルプの『weekday』を直訳して『平日』、『週日』と記載しているようです。
マイクロソフト用語集での『weekday』は『曜日』のことです。
どちらも英語版のMSDN、ヘルプの『weekday』を直訳して『平日』、『週日』と記載しているようです。
マイクロソフト用語集での『weekday』は『曜日』のことです。
※”ww”は何週間かを表示します。
上記プログラムの例では、このようになっているので「3」(3週間)という値がります。