日付時刻 日付/時刻表示書式指定文字の使用例

※より実装に近く表示させる為、コードの改行を避けています。スマホ等で閲覧される際は向きを変えてご覧ください。

※実装するバージョンによってはバージョンアップの仕様により動作しないコードもあります。実装には動作確認の上ご使用下さい。

Option Explicit


'(VB:Help)
'----------------------------------------------------
'yy/mm/dd               = 58/12/07
'mm -d                  = 12 - 7
'd -mmmm - yy           = 7 - December - 58
'd mmmm                 = 7 December
'mmmm yy                = December 58
'ddddd(aaa)             = 58/12/07(日)
'dddddd                 = 1958 年 12 月 7 日 日曜日
'ggge年m月d日(aaaa)     = 昭和33年12月7日(日曜日)
'hh:mm AM/PM            = 08:50 PM
'h:mm:ss a/p            = 8:50:35 p
'h:mm                   = 20:50
'h:mm:ss                = 20:50:35
'm/d/yy h:mm            = 12/7/58 20:50
'----------------------------------------------------
'****************************************************
'日付/時刻表示書式指定文字 (Format 関数)
'****************************************************

'c
'ddddd および t t t t t の書式で表した日付と時刻を、日付、時刻の順序で返します。
'指定された値に小数部がない場合は日付のみ、整数部がない場合は時刻のみを表す文字列を返します。
Private Sub testc()
    MsgBox Format(Now, "c")
    Debug.Print Format(Now, "c") '出力例[2009/09/18 15:19:58]
End Sub


'ddd
'曜日を英語 (省略形) で返します (Sun ~ Sat)。
Private Sub testddd()
    MsgBox Format(Now, "ddd")
    Debug.Print Format(Now, "ddd") '出力例[Fri]
End Sub


'aaa
'曜日を日本語 (省略形) で返します (日~土)。
Private Sub testaaa()
    MsgBox Format(Now, "aaa")
    Debug.Print Format(Now, "aaa") '出力例[金]
End Sub


'dddd
'曜日を英語で返します (Sunday ~ Saturday)。
Private Sub testdddd()
    MsgBox Format(Now, "dddd")
    Debug.Print Format(Now, "dddd") '出力例[Friday]
End Sub


'aaaa
'曜日を日本語で返します (日曜日~土曜日)。
Private Sub testaaaa()
    MsgBox Format(Now, "aaaa")
    Debug.Print Format(Now, "aaaa") '出力例[金曜日]
End Sub


'ddddd
'年、月、日を含む短い形式 (コントロール パネルで設定) で表した日付を返します。
'既定の短い日付形式は、m/d/yy です。
Private Sub testddddd()
    MsgBox Format(Now, "ddddd")
    Debug.Print Format(Now, "ddddd") '出力例[2009/09/18]
End Sub


'dddddd
'年、月、日を含む長い形式 (コントロール パネルで設定) で表した日付を返します。
'既定の長い日付形式は mmmm dd, yyyy です。
Private Sub testdddddd()
    MsgBox Format(Now, "dddddd")
    Debug.Print Format(Now, "dddddd") '出力例[2009年9月18日]
End Sub

'w
'曜日を表す数値を返します (日曜日が 1、土曜日が 7 となります)。
Private Sub testw()
    MsgBox Format(Now, "w")
    Debug.Print Format(Now, "w") '出力例[6]
End Sub


'ww
'その日が一年のうちで何週目に当たるかを表す数値を返します (1 ~ 54)。
Private Sub testww()
    MsgBox Format(Now, "ww")
    Debug.Print Format(Now, "ww") '出力例[38]
End Sub


'mmm
'月の名前を英語 (省略形) の文字列に変換して返します (Jan ~ Dec)。
Private Sub testmmm()
    MsgBox Format(Now, "mmm")
    Debug.Print Format(Now, "mmm") '出力例[Sep]
End Sub


'mmmm
'月の名前を英語で返します (January ~ December)。
Private Sub testmmmm()
    MsgBox Format(Now, "mmmm")
    Debug.Print Format(Now, "mmmm") '出力例[September]
End Sub

'oooo
'月の名前を日本語で返します (1 月 ~ 12 月)。
Private Sub testoooo()
    MsgBox Format(Now, "oooo")
    Debug.Print Format(Now, "oooo") '出力例[9月]
End Sub


'q
'1 年のうちで何番目の四半期に当たるかを表す数値を返します (1 ~ 4)。
Private Sub testq()
    MsgBox Format(Now, "q")
    Debug.Print Format(Now, "q") '出力例[3]
End Sub


'g
'年号の頭文字を返します (M、T、S、H)。
Private Sub testg()
    MsgBox Format(Now, "g")
    Debug.Print Format(Now, "g") '出力例[H]
End Sub


'gg
'年号の先頭の 1 文字を漢字で返します (明、大、昭、平)。
Private Sub testgg()
    MsgBox Format(Now, "gg")
    Debug.Print Format(Now, "gg") '出力例[平]
End Sub


'ggg
'年号を返します (明治、大正、昭和、平成)。
Private Sub testggg()
    MsgBox Format(Now, "ggg")
    Debug.Print Format(Now, "ggg") '出力例[平成]
End Sub


'e
'年号に基づく和暦の年を返します。1 桁の場合、先頭に 0 が付きません。
Private Sub teste()
    MsgBox Format(Now, "e")
    Debug.Print Format(Now, "e") '出力例[21]
End Sub

'EE
'年号に基づく和暦の年を 2 桁の数値を使って返します。1 桁の場合、先頭に 0 が付きます。
Private Sub testee()
    MsgBox Format("1991/09/18", "ee")
    Debug.Print Format("1991/09/18", "ee") '出力例[03]
End Sub


'y
'1 年のうちで何日目に当たるかを数値で返します (1 ~ 366)。
Private Sub testy()
    MsgBox Format("1991/09/18", "y")
    Debug.Print Format("1991/09/18", "y") '出力例[261]
End Sub

'yy
'西暦の年を下 2 桁の数値で返します (00 ~ 99)。
Private Sub testyy()
    MsgBox Format("1991/09/18", "yy")
    Debug.Print Format("1991/09/18", "yy") '出力例[91]
End Sub

'yyyy
'西暦の年を 4 桁の数値で返します (100 ~ 9999)。
Private Sub testyyyy()
    MsgBox Format("1991/09/18", "yyyy")
    Debug.Print Format("1991/09/18", "yyyy") '出力例[1991]
End Sub

'h
'時間を返します。1 桁の場合、先頭に 0 が付きません (0 ~ 23)。
Private Sub testh()
    MsgBox Format("2009/09/18 15:19:58", "h")
    Debug.Print Format("2009/09/18 15:19:58", "h") '出力例[15]
End Sub

'hh
'時間を返します。1 桁の場合、先頭に 0 が付きます (00 ~ 23)。
Private Sub testhh()
    MsgBox Format("2009/09/18 05:19:58", "hh")
    Debug.Print Format("2009/09/18 05:19:58", "hh") '出力例[05]
End Sub

'N
'分を返します。1 桁の場合、先頭に 0 が付きません (0 ~ 59)。
Private Sub testn()
    MsgBox Format("2009/09/18 05:19:58", "n")
    Debug.Print Format("2009/09/18 05:19:58", "n") '出力例[19]
End Sub

'nn
'分を返します。1 桁の場合、先頭に 0 が付きます (00 ~ 59)。
Private Sub testnn()
    MsgBox Format("2009/09/18 05:09:58", "nn")
    Debug.Print Format("2009/09/18 05:09:58", "nn") '出力例[09]
End Sub

's
'秒を返します。1 桁の場合、先頭に 0 が付きません (0 ~ 59)。
Private Sub tests()
    MsgBox Format("2009/09/18 05:09:58", "s")
    Debug.Print Format("2009/09/18 05:09:58", "s") '出力例[58]
End Sub

'ss
'秒を返します。1 桁の場合、先頭に 0 が付きます (00 ~ 59)。
Private Sub testss()
    MsgBox Format("2009/09/18 05:09:08", "ss")
    Debug.Print Format("2009/09/18 05:09:08", "ss") '出力例[08]
End Sub

'tttttt
'コントロール パネルで設定されている形式で時刻を返します。
'先頭に 0 を付けるオプションが選択されていて、時刻が午前または午後 10 時以前の場合、
'先頭に 0 が付きます。既定の形式は、h:mm:ss です。
Private Sub testtttt()
    MsgBox Format("2009/09/18 05:09:08", "ttttt")
    Debug.Print Format("2009/09/18 05:09:08", "ttttt") '出力例[5:09:08]
End Sub

'AM/PM
'時刻が正午以前の場合は大文字で AM を返し、正午~午後 11 時 59 分の間は大文字で PM を返します。
Private Sub testAMPM()
    MsgBox Format("2009/09/18 05:09:08", "AM/PM")
    Debug.Print Format("2009/09/18 05:09:08", "AM/PM") '出力例[AM]
End Sub

'am/pm
'時刻が正午以前の場合は小文字で am を返し、正午~午後 11 時 59 分の間は小文字で pm を返します。
Private Sub testAMPM2()
    MsgBox Format("2009/09/18 05:09:08", "am/pm")
    Debug.Print Format("2009/09/18 05:09:08", "am/pm") '出力例[am]
End Sub

'A/P
'時刻が正午以前の場合は大文字で A を返し、正午~午後 11 時 59 分の間は大文字で P を返します。
Private Sub testAP()
    MsgBox Format("2009/09/18 05:09:08", "A/P")
    Debug.Print Format("2009/09/18 05:09:08", "A/P") '出力例[A]
End Sub

'a/p
'時刻が正午以前の場合は小文字で a を返し、正午~午後 11 時 59 分の間は小文字で p を返します。
Private Sub testAP2()
    MsgBox Format("2009/09/18 05:09:08", "a/p")
    Debug.Print Format("2009/09/18 05:09:08", "a/p") '出力例[a]
End Sub

'AMPM
'"12 時間制" が選択されていて、時刻が正午以前の場合は午前を表すリテラル文字列を、
'正午~午後 11 時 59 分の間は午後を表すリテラル文字列を返します。
'これらの文字列の設定および "12 時間制" の選択は、コントロール パネルで行います。
'AMPM は大文字、小文字のどちらでも指定できます。既定の形式は、AM/PM です。
Private Sub testAMPM3()
    MsgBox Format("2009/09/18 05:09:08", "AMPM")
    Debug.Print Format("2009/09/18 05:09:08", "AMPM") '出力例[午前]
End Sub


'定義済み日付/時刻書式 (Format 関数)
'
'General Date
'日付または時刻、あるいはその両方を返します。整数部と小数部の両方を含む数値を指定すると、
'日付と時刻の両方を表す文字列 (たとえば 96/4/3 5:34) に変換します。小数部がない場合には日付のみ
'(たとえば 96/4/3)、整数部がない場合には時刻のみ (たとえば 5:34) を表す文字列に変換します。
'日付と時刻の表示形式はコントロール パネルの設定により決まります。
Private Sub testGeneralDate()
    MsgBox Format("2009/09/18 05:09:08", "General Date")
    Debug.Print Format("2009/09/18 05:09:08", "General Date") '出力例[2009/09/18 5:09:08]
End Sub

'Long Date
'日付の長い形式 (コントロール パネルの設定) で表した日付を返します。
Private Sub testLongDate()
    MsgBox Format("2009/09/18 05:09:08", "Long Date")
    Debug.Print Format("2009/09/18 05:09:08", "Long Date") '出力例[2009年9月18日]
End Sub

'Medium Date
'簡略形式で表した日付を返します。ホスト アプリケーションで使用されます。
Private Sub testMediumDate()
    MsgBox Format("2009/09/18 05:09:08", "Medium Date")
    Debug.Print Format("2009/09/18 05:09:08", "Medium Date") '出力例[09-09-18]
End Sub

'Short Date
'日付の短い形式 (コントロール パネルの設定) で表した日付を返します。
Private Sub testShortDate()
    MsgBox Format("2009/09/18 05:09:08", "Short Date")
    Debug.Print Format("2009/09/18 05:09:08", "Short Date") '出力例[2009/09/18]
End Sub

'Long Time
'時刻、分、秒を含む形式で表した時刻を返します。
Private Sub testLongTime()
    MsgBox Format("2009/09/18 05:09:08", "Long Time")
    Debug.Print Format("2009/09/18 05:09:08", "Long Time") '出力例[5:09:08]
End Sub

'Medium Time
'時間と分を 12 時間制で表した時刻を返します。同時に午前 (AM)、午後 (PM) も追加します。
Private Sub testMediumTime()
    MsgBox Format("2009/09/18 05:09:08", "Medium Time")
    Debug.Print Format("2009/09/18 05:09:08", "Medium Time") '出力例[05:09 午前]
End Sub

'Short Time
'時間と分を 24 時間制で表した時刻 (たとえば 17:45) を返します。
Private Sub testShortTime()
    MsgBox Format("2009/09/18 05:09:08", "Short Time")
    Debug.Print Format("2009/09/18 05:09:08", "Short Time") '出力例[05:09]
End Sub

 

 

 

2000年01月01日|[VBサンプルコード]:[日付時刻]