アクセス上位ページ
 
最近の更新内容
(3)-f.DateValue、TimeValue関数 ⇐ [PREV]
[NEXT] ⇒ (3)-h.DatePart関数

Excel VBA ≫ 2.関数リファレンス - 日付と時刻(3)-g.DateSerial、TimeSerial関数

DateSerial、TimeSerial関数

DateSerial、TimeSerial関数は引数に指定した日付・時刻に対応する数値からDate型へ値を変換します。 引数に指定した値が日時として正しい範囲にない場合、超過分が加算(超過分がマイナスの場合は減算)された値が返されます。 これは、ある基準日時からの相対日時を取得するのに使用できます。
  • 【構文】
    DateSerial (Year , Month , Day)
    TimeSerial (Hour , Minute , Second)

      【戻り値】 バリアント型 (内部処理形式 Date の Variant)

  • DateSerial関数
  • 引数名 省略 説明
    Year × 年を表す 100 〜 9999 の範囲の数値または数式を指定します。
    Month × 月を表す 1 〜 12 の範囲の数値または任意の数式を指定します。 数値がこの範囲からはずれた場合、超過分が加算された日付が返されます。
    Day × 日を表す 1 〜 31 の範囲の数値または任意の数式を指定します。 数値がこの範囲からはずれた場合、超過分が加算された日付が返されます。

  • TimeSerial関数
  • 引数名 省略 説明
    Hour × 時を表す 0 (12:00 AM) 〜 23 (11:00 PM) の範囲の数値または数式を指定します。
    Minute × 分を表す 0 〜 59 の範囲の数値または任意の数式を指定します。 数値がこの範囲からはずれた場合、超過分が加算された時刻が返されます。
    Second × 秒を表す 0 〜 59 の範囲の数値または任意の数式を指定します。 数値がこの範囲からはずれた場合、超過分が加算された時刻が返されます。




  • DateSerial関数の使用例
  • Sub sample_ef037_01()
        '2013/1/1
        Debug.Print "日付[1]:" & DateSerial(2013, 1, 1)
    
        '2013/1/1 から90日後
        Debug.Print "日付[2]:" & DateSerial(2013, 1, 1 + 90)
    
        '2013/1/1の一カ月前
        Debug.Print "日付[3]:" & DateSerial(2013, 0, 1)
    
        '2013/1/1の1日前 ⇒ 前月末日
        Debug.Print "日付[4]:" & DateSerial(2013, 1, 0)
    End Sub
    
    ⇒ サンプルマクロ集 へ

    <実行結果(イミディエイトウィンドウ)>
    日付[1]:2013/01/01
    日付[2]:2013/04/01
    日付[3]:2012/12/01
    日付[4]:2012/12/31
    


  • DateSerial関数で月末を表示する例
  • ある年における月末をすべて表示する例です。
    Sub sample_ef037_02()
        Dim intYear     As Integer
        Dim i           As Integer
    
        '月末表示する年を設定
        intYear = 2012  '閏年
    
        For i = 1 To 12
            '月末を表示
            Debug.Print DateSerial(intYear, 1 + i, 0)
        Next i
    End Sub
    
    ⇒ サンプルマクロ集 へ

    <実行結果(イミディエイトウィンドウ)>
    2012/01/31 
    2012/02/29 
    2012/03/31 
    2012/04/30 
    2012/05/31 
    2012/06/30 
    2012/07/31 
    2012/08/31 
    2012/09/30 
    2012/10/31 
    2012/11/30 
    2012/12/31 
    

  • TimeSerial関数の使用例
  • Sub sample_ef037_03()
        '0時1分23秒
        Debug.Print "時刻[1]:" & TimeSerial(0, 1, 23)
    
        '0時1分23秒の90分後
        Debug.Print "時刻[3]:" & TimeSerial(0, 1 + 90, 23)
    
        '0時1分23秒の45秒後
        Debug.Print "時刻[3]:" & TimeSerial(0, 1, 23 + 45)
    
        '0時1分23秒の5分前
        '【注意】減算して0:00:00より前になると時刻が正しく算出されません。
        Debug.Print "時刻[4]−1:" & TimeSerial(0, 1 - 5, 23)
    
        'この場合は時間に24を指定します。
        Debug.Print "時刻[4]−2:" & TimeSerial(24, 1 - 5, 23)
    
        'または日付情報を付加します。
        '最終的に日付情報が不要の場合はTimeValueで日付を削除します。
        Debug.Print "時刻[4]−3:" & _
                    TimeValue(DateValue("1/1") + TimeSerial(0, 1 - 5, 23))
    End Sub
    

    <実行結果(イミディエイトウィンドウ)>
    時刻[1]:0:01:23
    時刻[3]:1:31:23
    時刻[3]:0:02:08
    時刻[4]−1:0:03:37
    時刻[4]−2:23:56:23
    時刻[4]−3:23:56:23
    
カテゴリ内ページ
Excel VBA 〜 総目次 〜
- 2.関数リファレンス
-- (3).日付と時刻
--- (3)-a.Date、Time、Now関数
--- (3)-b.Year、Month、Day関数
--- (3)-c.Hour、Minute、Second関数
--- (3)-d.Weekday関数
--- (3)-e.WeekdayName関数
--- (3)-f.DateValue、TimeValue関数
--- (3)-g.DateSerial、TimeSerial関数
--- (3)-h.DatePart関数
--- (3)-i.DateDiff関数
--- (3)-j.Timer関数



Page
Top