| 関数 | 処理内容 | |
| 1 | Date | 現在のシステムの日付を返す |
| 2 | DateAdd | 日付に指定した時間間隔を加算し返す |
| 3 | DateDiff | 指定して2つの日付の間隔を計算して返す |
| 4 | DatePart | 日付を評価し、特定の時間間隔部を取得する |
| 5 | DateSerial | 引数に指定した年・月・日に対応する日付を返す |
| 6 | DateValue | 日付を返す |
| 7 | Day | 月の何日かを表す1〜31の範囲の整数を返す |
| 8 | Hour | 時間を整数で返す |
| 9 | Minute | 分を整数で返す |
| 10 | Month | 1〜12の整数で何月になるかを返す |
| 11 | Now | 現在の日付・時間をシステムの設定形式で返す |
| 12 | Second | 秒を整数で返す |
| 13 | Time | 現在のシステムの時刻を返す |
| 14 | Timer | 午前0時からの経過秒数を表示 |
| 15 | TimeSerial | 引数に指定した時・分・秒に対応する時刻を返す |
| 16 | TimeValue | 指定した文字形式で表される時刻を返す |
| 17 | Weekday | 曜日を整数で返す(1:日曜日〜7:土曜日) |
| 18 | Year | 年を表す整数を返す |
Sub 日付1_1()
Cells(1, 1) = Date '結果例:2011/12/12
Cells(2, 1) = DateAdd("m", 1, "2011/12/31") '結果例:2012/1/31
Cells(3, 1) = DateDiff("yyyy", "1944/4/23", "2011/12/31") '結果例:67
Cells(4, 1) = DatePart("m", Date) '結果例:12
Cells(5, 1) = DateSerial(2011, 12, 12) '結果例:2011/12/12
Cells(6, 1) = DateValue("2011, 12, 12") '結果例:2011/12/12
Cells(7, 1) = Day(Date) '結果例:12
Cells(8, 1) = Hour(Now) '結果例:12
Cells(9, 1) = Minute(Now) '結果例:20
Cells(10, 1) = Month(Date) '結果例:12
Cells(11, 1) = Now '結果例:2011/12/13 8:46:29
Cells(12, 1) = Second(Now) '結果例:52
Cells(13, 1) = Time '結果例:9:05:00
Cells(14, 1) = Timer '結果例:52949.109375
Cells(15, 1) = TimeSerial(8, 30, 0) '結果例:8:30:00
Cells(16, 1) = TimeValue("12:0:10") '結果例:12:00:10
Cells(17, 1) = Weekday(Now) '結果例:2
Cells(18, 1) = Year(Now) '結果例:22011
End Sub
|
| 【備考】 引数の内容は表19参照 【表19 インターバルの設定内容】 ![]() |


Sub 日付1_2()
Cells(1, 2) = Format(Date, "yyyy/mm/dd") '結果例:2011/12/12
Cells(2, 2) = Format(Date, "yyyy年mm月dd日") '結果例:2011年12月13日
Cells(3, 2) = Format(Date, "ggge/mm/dd") '結果例:平成23/12/12
Cells(4, 2) = Format(Date, "yyyy/mmm/ddd(dddd)") '結果例:2011/Dec/Mon(Monday)
Cells(5, 2) = Format(Date, "ggge/mm/dd(aaaa)") '結果例:平成23/12/12(月曜日)
End Sub
|

Sub 日付2_1()
Dim t1 As Date, t2 As Date
t1 = TimeValue("8:30:00")
t2 = TimeValue("15:15:00")
Cells(1, 1).NumberFormatLocal = "h:mm"
Cells(1, 1) = t2 - t1 '結果例:6:45
End Sub
|
Sub 日付2_2()
Dim t1 As Date, t2 As Date
Const zikan As Single = 0.041667
t2 = TimeValue("16:00:00")
msg$ = "出勤時間を入力して下さい" & Chr(10) _
& "(例:9:15 又は、13:00 or PM1:00)"
t1 = InputBox(msg$, "出勤時間")
If t1 > 1 Then
MsgBox msg$
Exit |

Sub 日付2_3()
Dim msg As String, ymd As Date, ymdin As String
msg = "生年月日を入力して下さい" & Chr(10) _
& "yyyy/mm/dd のように/で区切って入力して下さい"
ymdin = InputBox(msg, "日付入力")
If IsDate(ymdin) = False Then
MsgBox "日付に変換できません"
Exit |
Sub 日付うるう年()
Dim myy As Integer
msg = "うるう年かチェックしたい年を歳暦で入力して下さい"
myy = Val(InputBox(msg, "うるう年チェック"))
If ((myy Mod 4) = 0 And (myy Mod 100) <> 0 Or (myy Mod 400) = 0) Then
MsgBox myy & "年の2月はうるう年で29日です"
Else
MsgBox myy & "年の2月は28日です"
End If
End Sub
|

Sub 日付2_4()
前例「日付5()」 のCall 日付2_3a(ymd) を Call 日付2_4a(ymd) に換える(他は同じ)
End Sub
------------------------------------
Sub 日付2_4a(basday As Date)
Cells(2, 1) = "生年月日「" & basday & "」の年齢 →"
Cells(2, 2).Formula = "=DATEDIF(" & Chr(34) & basday & Chr(34) & _
, & Chr(34) & Date & Chr(34) & ",""y"")"
End Sub
|
Sub 日付2_41a(basday As Date)
Cells(2, 1) = "生年月日「" & basday & "」の年齢 →"
Cells(2, 2) = DateDiff("yyyy", basday, Date)
End Sub
|

Sub 日付2_5()
前例「日付5()」 のCall 日付5a(ymd) を Call 日付7a(ymd) に換える(他は同じ)
End Sub
------------------------------------------------------------
Sub 日付2_5a(basday As Date)
Dim ziki As Date
ziki = DateAdd("yyyy", 60, basday)
MsgBox "生年月日「" & basday & "」の方の" & Chr(10) & Chr(10) & _
"60齢になる時期は「" & ziki & "」です。"
End Sub
|