日付

主に日付型Dateを扱う関数です。
日付型に変換したり年月日を取り出したりします。

現在の日付・時刻を得る
str Time現在の時刻を文字列で返す
num Timer午前0時からの経過秒数を返す
str Now現在の日付と時刻を返す

Date TimeSerial(hour as num,minute as num,second as num)
3つともnumです。
時分秒を指定してシリアル値を得る。
シリアル値とは、ある時点を起点として時刻や日付を数値で表したもののようです。
数値自体を使用者側がどうこう評価するものではない、内部中間値みたいなものです。

Date TimeValue(str)
時刻表記の文字列をシリアル値にする

Date DateSerial(num1,num2,num3)
num1は年、num2は月、num3は日を設定します。
三つの数値から日付型の値を作成します。

Date DateValue(str)
文字列から日付値を作成します。
どのような文字列を受け付けて解釈するかはExcelの設定に依存します。

Date CVDate(str or num)
日付文字列やシリアル値を日付型に変換
num DatePart(interval,Date[,firstdayofweek[,firstweekofyear]])
引数の意味についてはDateAddと同じ。
Dateからintervalで意味する情報を取り出す。

日付のうち一部を数値として取り出します。
num Month(as Date)日付の月部分
num Day (as Date)日付の日部分
num Hour(as Date) 時刻の時部分
num Minute(as Date) 時刻の分部分
num Second(as Date) 時刻の秒部分

num WeekDay(Date[,num])
日付が何曜日であるかを得られます。
第二引数は firstdayofweekとあり、週の第一日目の曜日を指定する、らしいですがなんの意味があるのか不明です。
何曜日かを示す整数を返しますが、以下のExcelの組み込み定数と比較すべきです。
定数内容
vbSunday日曜1
vbMonday月曜2
vbTuesday火曜3
vbWednesday水曜4
vbThursday木曜5
vbFriday金曜6
vbSaturday土曜7

Date DateAdd(interval as str,num,Date)
ある間隔後の日付時刻を求める。
Dateの時からintervalの単位でnumだけ加算したDateが得られます。
intervalが面倒で文字列で与えますが、以下の表です。
interval意味
yyyy
q四半期
m
y年間通算日
d
w週日
ww
h
n
s

num DateDiff(interval,date1,date2[,firstdayofweek[,firsweekofyear]])
二つの日付時刻の間隔を求める。
firstdayofweekは省略するとvbSundayになります。
firstdayofweek
定数内容
vbUseSystemAPI既定値0
vbSunday日曜1
vbMonday月曜2
vbTuesday火曜3
vbWednesday水曜4
vbThursday木曜5
vbFriday金曜6
vbSaturday土曜7
firstweekofyearは省略するとvbFirstJan1になります。
firstweekofyear
定数内容
vbUseSystemAPI既定値0
vbFirstJan1一月一日を含む週が年度の第一週1
vbFirstFourDays7日のうち少なくとも4日が新年度に含まれる週2
vbFirstFullWeek一週間全体が新年度に含まれる最初の週3
大概のサイトが定義表の提供だけでスルーしているが、意味が分かるだろうか。

ちょっと調べてみると欧州では日本の一般常識と「週」の定義がちょっと異なり「週の4日以上が新年に含まれる週を最初の週とみなす」のだそうだ。
そういう場合はvbFirstFourDaysを指定すれば“正しい”答えが得られるということなのだろう。

vbFirstFullWeekというのは、新年のある週は必ずしも第一週ではなくて、7日全部があって初めてそれが第一週となる、ということになる。
これもどこかの地域の慣習か何かなのだろうか。

str WeekdayName(num)
曜日を表す数値から文字列を返す。
どんな文字列となるかはExcelの設定(国設定等)で変わります。

str MonthName(num[,Bool])
月を表す文字列を返します。
第二引数はTrueかFalseで、省略するとFalseになります。
Trueで月名を省略します。

num Year(Date)
日付の西暦年を4桁で返す。
2013とかになります。
-