トップ > スキル : アプリケーション > VBA for Access > 応用編(組み込み関数)
日付や時刻を扱う代表的な関数を説明します。
Year,Month,Day,Date関数
Year関数、Month関数、Date関数は、それぞれ日付のデータから年、月、日を整数に変換した値を返します。日付は、リテラル文字(#)を使っても、文字形式でも指定できます。
また、Date関数はシステム日付を返します。
MsgBox関数
【書式】 Date
Year (日付)
Month (日付)
Day (日付)
システム日付から当日の日付を取得して、それぞれ年、月、日の取りだすには次のように記述します。
(例)
Sub Hiduke() Dim Hiduke As Date Hiduke = Date MsgBox "年は" & Year(Hiduke) & Chr(13) & _ "月は" & Month(Hiduke) & Chr(13) & _ "日は" & Day(Hiduke) End Sub
当日が「2010年11月9日」である場合、以下のようなメッセージが表示されます。

Format関数
日付を指定した書式に変換して返します。Format関数は日付を扱うだけの関数ではなく、書式を指定したい場合に利用します。
Format関数
【書式】 Format(変換する日付 [,変換方法])
変換方法には以下のような書式を使います。
文字列を変数に格納して、文字列の中の文字を取り出すには以下のように記述します。
書式 | 説明 |
yy | 西暦の最後の2ケタを表示(01~99) |
yyyy | 西暦を4ケタ表示(0100~9999) |
g | 和暦の頭文字を表示(M、T、S、H) |
gg | 和暦の頭文字を漢字1文字で表示(明、大、昭、平) |
ggg | 和暦を表示(明治、大正、昭和、平成) |
e | 年を年号で表示 |
ee | 年を年号2ケタで表示 |
m | 1~12で月を表示 |
mm | 01~12で月を2ケタ表示 |
mmm | 月の名前を英語3文字の省略形で表示(Jan~Dec) |
mmmm | 月の名前を英語で省略なしで表示(January~December) |
d | 1~31で日付を表示 |
dd | 01~31で日付を2ケタで表示 |
aaa | 曜日を日本語の省略形で表示(日~土) |
aaaa | 曜日を日本語で表示(日曜日~土曜日) |
w | 曜日を数値で表示(1~7) |
ww | 1年のうち何週目であるかを表示(1~53) |
システム日付を年、月、日、曜日の順で表示するには、以下のように記述します。
(例)
Sub format_kansuu() Dim Hiduke As Date Hiduke = Date MsgBox "今日は" & Format(Date, "ggge年mm月dd日(aaa)") & "です。" End Sub
日付が指定した書式どおりに、メッセージ表示されます。

DateDiff関数
開始日から終了日までを時間単位の値で返します。この関数は、年齢、在籍年数などを求める時に使用します。時間単位は、年数、月数、日数、または週数を指定できます。
DateDiff関数
【書式】 DateDiff(時間単位,開始日,終了日)
時間単位には以下のような書式があります。
時間単位 | 時間単位の意味 |
yyyy | 年 |
q | 四半期 |
m | 月 |
y | 年間通算日 |
d | 日 |
w | 週日 |
ww | 週 |
h | 時 |
n | 分 |
s | 秒 |
※ 時間単位は、開始日と終了日の日付期間を計算する書式で、かならずダブルクォーテーションで囲みます。
今日(操作した当日)で、今年は何日過ぎているかを表示するには、以下のように記述します。
(例)
Sub datediff_kansuu() Dim Birth As Date Birth = #5/20/1975# MsgBox "今年で年齢は" & DateDiff("yyyy", Birth, Date) & "才です。" End Sub
1975年5月20日生まれの方は、今年で何歳かを表示するメッセージとなります。

Time,Hour,Minute,Second関数
時刻を取得する関数です。Time関数は、現在の時刻を取得します。Hour関数、Minute関数、Second関数は、引数に指定した時刻から時間、分、秒を取得します。
InputBox関数
【書式】 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桁)で秒を表示 |
AM/PM | 大文字のAM,PMを付加して12時間制で時刻を表示 |
am/pm | 小文字のam,pmを付加して12時間制で時刻を表示 |
現在の時刻をコロン(:)で表示するには以下のような記述をします。
(例)
Sub zikoku_kansuu() MsgBox Format(Time, "現在の時刻はhh時nn分ss秒です") End Sub
現在の時刻を表示するメッセージとなります。

日付を扱うその他の関数
関数名 | 説明 |
---|---|
DatePart | 年、週、日など、日付から指定した部分を返す |
DateSerial | 数値で指定した年、月、日から作成した日付を返す |
DateValue | 文字列形式になっている日付を、日付形式に変換して返す |
Now | システム日付を返す |
Timer | 午前0時を基準にして、経過した秒数を返す |
TimeSerial | 数値で指定した時、分、秒から作成した日付を返す |
TimeValue | 文字列形式になっている時刻を、時刻形式に変換して返す |
Weekday | 日付が何曜日なのか数値で返す |