HOME > VBA 基礎 >このページ
日付・時刻関数(関数編)

■Contents

01 日付を取得
02 日付の表示書式1
03 日付の表示書式2
04 時刻の表示書式
05 曜日名を取得1
06 曜日名を取得2
07日付間隔を求める
08 経過時間を求める
09 時間間隔を追加する
10 日付・時刻文字列を日付データに変換する

01.日付を取得

【書式】  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



02.日付の表示書式1

【書式】 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を組み合わせたもの(規定値)



03.日付の表示書式2

【書式】 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



04.時刻の表示書式

【書式】 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



05.曜日名を取得1

【書式】 Weekday(日付)

 日付 :曜日を取得する日付
戻り値
定数 内容
vbSunday 1 日曜
vbMonday 2 月曜
vbTuesday 3 火曜
vbWednesday 4 水曜
vbThursday 5 木曜
vbFriday 6 金曜
vbSsturday 7 土曜
【サンプルコード】( Dateが月曜日の場合,実行すると2が表示されます。)
  Sub 時間の書式()
    MsgBox Weekday(Date)
  End Sub



06.曜日名を取得2

【書式】 Weekdayname(曜日名[,表示種別])

 曜日名:曜日名を表す定数または変数
 表示種別:戻り値に”曜日”をつけるかを設定。”曜日”を付ける場合はFalseを設定します。
          ”曜日”を付けないときはTrueを設定します。省略した場合はFalseが設定されます。
【サンプルコード】
  Sub 曜日()
    MsgBox "今日は" & WeekdayName(Weekday(Date), False) & "です。"
    MsgBox "今日は" & WeekdayName(Weekday(Date), True) & "です。"
  End Sub



07.日付間隔を求める

【書式】 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



08.経過時間を求める

【書式】 DatePart(時間単位,日付)
     
 時間単位:年初日からの経過時間を計算するための時間単位を表す文字列。
 日付  :経過時間を計算する日付です。
 DatePart関数を利用して年の初日からの経過時間を求めます。年初日,月の初日,午前0時などの「時間の初め」からの経過時間を,年単位,日単位,週単位などの時間形式で求めることができます。
【サンプルコード】
  Sub 経過時間()
    MsgBox "今月も" & DatePart("w", Date) & "週が経ちました。"
    MsgBox "今年も" & DatePart("y", Date) & "日が経ちました。"
    MsgBox "今月も" & DatePart("d", Date) & "日が経ちました。"
    MsgBox "今日も" & DatePart("h", Time) & "時間が経ちました。"
  End Sub



09.時間間隔を追加する

【書式】 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



10.日付・時刻文字列を日付データに変換する

【書式】 DateValue(日付)

 日付:文字列として表された日付です。
 DateValue関数を利用して「2004年5月3日」のように文字列(String型)として表された日付を,日付演算が可能なデータ(バリアント型)に変換します。
【書式】 TimeValue(時刻)

 時刻:文字列として表された時刻です。
 TimeValue関数を利用して「1時34分」のように文字列(String型)として表された時刻を,時刻演算が可能なデータ(バリアント型)に変換します。

ホームページに|前のページに|次のページに

CopyRight(C) 2004 cbcnet. All Rights Reserved