トップ > スキル : アプリケーション > VBA for Access > 応用編(組み込み関数)

VBA_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 日付が何曜日なのか数値で返す