| 日付・時刻関数(関数編) |
01 日付を取得 02 日付の表示書式1 03 日付の表示書式2 04 時刻の表示書式 05 曜日名を取得1 06 曜日名を取得2 07日付間隔を求める 08 経過時間を求める 09 時間間隔を追加する 10 日付・時刻文字列を日付データに変換する
【書式】 Date Year(日付) Month(日付) Day(日付)
Date関数を利用して現在の日付を取得します。Year関数,Month関数,Day関数を利用して,引数に指定した日付から,年,月,日を取得します。
【サンプルコード】
Sub 日付() Dim today As Date today = Date MsgBox "今日の日付は " & today & "です。" MsgBox "今年は" & Year(today) & "年です。" MsgBox "今月は" & Month(today) & "月です。" MsgBox "今日は" & Day(today) & "日です。" End Sub
【書式】 Format(変換する書式[,変換方法]) 変換する書式:書式を整える日付や文字列 変換方法 :書式設定方法
■変換方法の組み込み定数 定数 内容 Long Date [2004年5月3日]の形式で表示 Medium Date [03・Apr・98]の形式で表示 Short Date [98/11/23]の形式で表示 Long Time [10:14:42PM]の形式で表示 Medium Time [10:45PM]の形式で表示 Short Time [19:32]の形式で表示 General Date 日付だけの場合は時刻は表示されず,時刻だけの場合は日付は表示されません。Short DateとLong Timeを組み合わせたもの(規定値)
【書式】 Format(変換する書式[,変換方法]) 変換方法:書式設定方法
■設定できる書式 文字 内容 / 日付の区切り記号を表示 c 既存の書式名[General Date/日付(標準)]と同じ d 1〜31で日付を表示 dd 01〜31で日付を表示 ddd 曜日を省略形(英語3文字)で表示(Sun〜Sat) aaa 曜日を省略形(日本語)で表示(日〜土) dddd 曜日を英語で表示(Sunday〜Saturday) aaaa 曜日を日本語で表示(日曜日〜土曜日) ddddd 既存の書式名[Short Date/日付(S)]と同じ dddddd 既存の書式名[Long Date/日付(L)]と同じ w 曜日を数値で表示(1〜7) ww その日が1年のうちの何週目であるかを表示(1〜53) m 1〜12で月を表示 mm 01〜12で月を表示 mmm 月の名前を省略形(英語3文字)で表示(Jan〜Dec) mmmm 月の名前(英語)を省略せずに表示 q 1年のうちどの四半期に属するかを表示(1〜4) g 年号の頭文字を表示(M,T,S,H) gg 年号の先頭の1文字を漢字で表示(明,大,昭,平) ggg 年号を表示(明治,大正,昭和,平成) e 年を年号で表示 ee 年を年号で2桁の数値で表示 y 日付を1月1日からの日数で表示(1〜366) yy 西暦の最後の2桁を表示(01〜99) yyyy 西暦を表示(0100〜9999)
【サンプルコード】
Sub 日付の書式() ' 2004/05/03 MsgBox "今日は" & Format(Date) & "です" '2004年5月3日 MsgBox "今日は" & Format(Date, "long date") & "です" '2004/05/03
MsgBox "今日は" & Format(Date, "yyyy/mm/dd") & "です"
'2004年5月3日
MsgBox "今日は" & Format(Date, "yyyy年m月d日") & "です" '平成16年5月3日(月曜日)
MsgBox "今日は" & Format(Date, "ggge年m月d日(aaaa)") & "です" End Sub
【書式】 Time Hour(時刻) Minute(時刻) Second(時刻)
Time関数を利用して現在の時刻を取得します。Hour関数,Minute関数,Second関数を利用して,引数に指定した時刻から,時間,分,秒を取得します。
■時刻に設定可能な書式設定文字 文字 内容 :(コロン) 時刻の区切り記号を表示 h 0〜23で時刻を表示 hh 00〜23(2桁)で時刻を表示 n 0〜59で分を表示 nn 00〜59(2桁)で分を表示 s 0〜59で秒を表示 ss 00〜59(2桁)で秒を表示 ttttt 定義済み書式"Long Time"と同じ AM/PM 大文字のAM,PMを付加して12時間制で時刻を表示 am/pm 小文字のam,pmを付加して12時間制で時刻を表示 A/P 大文字のA,Pを付加して12時間制で時刻を表示 a/p 小文字のa,pを付加して12時間制で時刻を表示
【サンプルコード】
Sub 時間の書式() MsgBox Time MsgBox "現在の時刻は:" & Hour(Time) & "時" & Minute(Time) & "分" _ & Second(Time) & "秒です" End Sub
【書式】 Weekday(日付) 日付 :曜日を取得する日付
■戻り値 定数 値 内容 vbSunday 1 日曜 vbMonday 2 月曜 vbTuesday 3 火曜 vbWednesday 4 水曜 vbThursday 5 木曜 vbFriday 6 金曜 vbSsturday 7 土曜
【サンプルコード】( Dateが月曜日の場合,実行すると2が表示されます。)
Sub 時間の書式() MsgBox Weekday(Date) End Sub
【書式】 Weekdayname(曜日名[,表示種別])
曜日名:曜日名を表す定数または変数
表示種別:戻り値に”曜日”をつけるかを設定。”曜日”を付ける場合はFalseを設定します。
”曜日”を付けないときはTrueを設定します。省略した場合はFalseが設定されます。
【サンプルコード】
Sub 曜日() MsgBox "今日は" & WeekdayName(Weekday(Date), False) & "です。" MsgBox "今日は" & WeekdayName(Weekday(Date), True) & "です。" End Sub
【書式】 DateDiff(時間単位,日付1,日付2) 時間単位:2つの日付期間を計算する時間単位をダブルクオーテーションで囲みます。 日付1,日付2:日付期間を計算する初めと終わりの日付です。
文字 内容 yyyy 年 q 四半期 m 月 y 年間通算日 d 日 w 週日 ww 週 h 時 n 分 s 秒
【サンプルコード】
Sub 日付期間()
Const vdate = "2050/01/01"
MsgBox "今日も" & DateDiff("y", "1/1", Date) & "が過ぎました。"
MsgBox "2050年まで" & DateDiff("w", Date, vdate) & "週"
MsgBox "2050年まで" & DateDiff("d", Date, vdate) & "日"
MsgBox "2050年まで" & DateDiff("h", Date, vdate) & "時間"
End Sub
【書式】 DatePart(時間単位,日付) 時間単位:年初日からの経過時間を計算するための時間単位を表す文字列。 日付 :経過時間を計算する日付です。
DatePart関数を利用して年の初日からの経過時間を求めます。年初日,月の初日,午前0時などの「時間の初め」からの経過時間を,年単位,日単位,週単位などの時間形式で求めることができます。
【サンプルコード】
Sub 経過時間()
MsgBox "今月も" & DatePart("w", Date) & "週が経ちました。"
MsgBox "今年も" & DatePart("y", Date) & "日が経ちました。"
MsgBox "今月も" & DatePart("d", Date) & "日が経ちました。"
MsgBox "今日も" & DatePart("h", Time) & "時間が経ちました。"
End Sub
【書式】 DateAdd(時間単位,追加時間,日付)
時間単位:追加する時間間隔を計算するための時間単位を表す文字列。
追加時間:追加する時間間隔。
将来の日時を取得する場合は正の数,過去の日時を取得する場合は負の数を指定。
日付 :時間間隔を追加する元となる日付です。
DateAdd関数は設定した日付に対して,数日後,数時間後,数日前といった時間間隔を加算・減算した値を求めることができます。ただし,この関数の戻り値は[コントロールパネル]の設定によって決まります。また演算結果が,西暦100年1/1〜西暦9999年12月31日を外れた場合にはエラーとなります。
【サンプルコード】
Sub 時間間隔の追加()
MsgBox "今日から4週間後は" & Format(DateAdd("ww", 4, Date), "yyyy年m月d日") & "です。"
MsgBox "今日から10日前は" & Format(DateAdd("d", -10, Date), "yyyy年m月d日") & "です。"
MsgBox "今から20分後は" & Format(DateAdd("n", 20, Time), "h時m分") & "です。"
End Sub
【書式】 DateValue(日付) 日付:文字列として表された日付です。
DateValue関数を利用して「2004年5月3日」のように文字列(String型)として表された日付を,日付演算が可能なデータ(バリアント型)に変換します。
【書式】 TimeValue(時刻) 時刻:文字列として表された時刻です。
TimeValue関数を利用して「1時34分」のように文字列(String型)として表された時刻を,時刻演算が可能なデータ(バリアント型)に変換します。