関数 | 処理内容 | |
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$ ExitSub End If 昼休み時間 If t1 < 0.5 Then hiru = zikan Else If (0.5 + zikan) > t1 Then t1 = TimeValue("13:00:00") End If MsgBox Format(t2 - t1 - hiru, "h:mm") End Sub CDbl(t1) MsgBox Format(t2 - t1 - 1, "h:mm") '1日はシリアル値1であり-1では結果は0 |
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 "日付に変換できません" ExitSub Else ymd = DateValue(ymdin) End If Call 日付2_3a(ymd) End Sub ---------------------------------------------------------- Sub 日付2_3a(basday As Date) Dim tosi As Integer tosi = Int((Date - basday + 1) / 365.25) MsgBox basday & "生まれの方の" & Chr(10) & _ "今日現在の年齢は「" & tosi & "」歳です。" End Sub |
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 |