Categories: VBA基礎

EXCEL VBA Date Time Now(現在の日付・時間を取得)

EXCEL VBA Date(現在の日付を取得)

 

●はじめに
ここでは、Date関数の使い方を説明します。Date関数は、現在の日付を習得したり、文字列で作成した日付・時刻などを代入する事も出来ます。日時を管理する場合など、便利な機能なので、順番に説明いたします。

 

●書式の説明
Date()   ※引数はありません

 

●プログラム説明
次にDate関数を使ったサンプルプログラムを作成しましたので、参照してください。

 

Sub Hizuke2()

    MsgBox Date  '現在の日付を表示する。

    Range("A1") = Date  'セルA1に現在の日付を表示する。
    
    Range("A2") = (Date) + 1 'セルA2に現在の日付+1を表示する。
    
    Range("A3") = (Date) + 30 'セルA3に現在の日付+30(1か月後)を表示する。
    
    Range("A4") = (Date) + 365 'セルA4に現在の日付+356(1年後)を表示する。
    

End Sub

 

●実行結果
実行後、現在の日付がメッセージボックスに表示されます。A1~A4のセルに加算した日付が入力されました。

 

●実行後 ※メッセージボックスの表示とセルに日付が表示されます。(クリックして拡大)

 

EXCEL VBA Time(現在の時刻を取得)

 

●はじめに
次に、Time関数の使い方を説明します。Time関数は、現在の時間を取得する事が出来ます。習得した現在時刻を時(Hour)、分(Minute)、秒(Second)関数を使って時・分・秒を変数などに代入する事も出来ます。

 

●書式の説明
Time()   ※引数はありません

 

●プログラム説明(サンプル①)
次にTime関数を使ったサンプルプログラムを作成しました。現在の時刻をメッセージボックスに表示します。

 

Sub Time01()

    MsgBox Time '現在のタイムを表示

End Sub

 

●実行結果
実行後、現在の時刻がメッセージボックスに表示されます。

 

●実行後 ※現在の時刻が表示されます。(クリックして拡大)

 

 

●プログラム説明(サンプル②)
次のサンプルプログラムは、Time関数を使ってある処理の処理時間を計測するプログラムです。終了時刻から開始時間を差し引きし処理時間を求めます。

 

Sub Time02()

    Dim StartTime, EndTime, ExTime As Date
    Dim L As Long
    
    StartTime = Time  '開始タイム代入
    
    '------------------処理(サンプル)-------------------
    
    For L = 1 To 100000
        Cells(1, 1) = Cells(1, 2)
    Next L
    
    '------------------処理終了(サンプル)---------------
    
    EndTime = Time    '終了タイム代入
    
    ExTime = EndTime - StartTime '終了タイム - 開始タイム
    
    MsgBox ExTime ’処理時間を表示します。
    

End Sub

 

●実行結果
実行後、サンプル処理に掛った時刻が表示されます。

 

●実行前 ※処理時間がメッセージボックスに表示されます。(クリックして拡大)

 

●プログラム説明(サンプルプログラム③)
次のサンプルプログラムは、Time関数とHour(時)・Minute(分)・Second(秒)を使って、Time関数で取得した時間を時・分・秒ごと、セルに記載するプログラムです。

 

Sub Time03()
    
    Dim Times As Date
    
    Times = Time '現在時間を代入
    
    Cells(1, "A") = "時"
    Cells(2, "A") = "分"
    Cells(3, "A") = "秒"
    
    Cells(1, "B") = Hour(Times) '時をB1セルに代入
    Cells(2, "B") = Minute(Times)  '分をB2セルに代入
    Cells(3, "B") = Second(Times)  '秒をB3セルに代入

End Sub

 

●実行結果
実行後、現在の時刻を取得してB列のセルに時・分・秒が表示されます

 

●実行後 ※セルに現在の時・分・秒が表示(クリックして拡大)

 

EXCEL VBA Now(現在の日付と時刻を取得)

 

●プログラム説明(サンプルプログラム①)
次に、Now関数の使い方を説明します。Now関数は、現在の日付と時間を取得する事が出来ます。習得した現在の年月日を年(Year)、月(Month)、日(Day)と現在時刻の時(Hour)、分(Minute)、秒(Second)関数を使って年・月・日・時・分・秒を変数などに代入する事も出来ます。

 

●書式の説明
Now()   ※引数はありません

 

●プログラム説明
次のサンプルプログラムは、Now関数を利用したプログラムです。現在の年月日・時刻を表示します。

 

Sub Now01()

    MsgBox Now  '現在の年月日・時刻を表示します。

End Sub
●実行結果
実行後、上記のプログラムを実行すると現在の年月日時刻を表示する事ができます。

 

●実行後 ※年月日・時刻が表示されます。(クリックして拡大)

 

●プログラム説明(サンプルプログラム②)
次のサンプルプログラムは、Now関数とYear(年)・Month(分)・Day(日)・Hour(時)・Minute(分)・Second(秒)を使って、Now関数で取得した年月日・時間を年・月・日・時・分・秒ごと、セルに記載するプログラムです。

 

Sub Now02()
 
    Dim X_Day As Date
    
    X_Day = Now  '現在時間を代入
    
    Cells(1, "A") = "年"
    Cells(2, "A") = "月"
    Cells(3, "A") = "日"
    
    Cells(1, "B") = Year(X_Day)  '年をB1セルに代入
    Cells(2, "B") = Month(X_Day)   '月をB2セルに代入
    Cells(3, "B") = Day(X_Day)   '日をB3セルに代入
        
    
    Cells(4, "A") = "時"
    Cells(5, "A") = "分"
    Cells(6, "A") = "秒"
    
    Cells(4, "B") = Hour(X_Day)  '時をB4セルに代入
    Cells(5, "B") = Minute(X_Day)   '分をB5セルに代入
    Cells(6, "B") = Second(X_Day)   '秒をB6セルに代入

End Sub

 

●実行結果
上記のプログラムを実行するとセルに年月日・時刻を表示する事ができます。

 

●実行後 ※元号と年月日が表示されていません。(クリックして拡大)

 

 

最後まで、ご覧いただきまして誠に有難うございました。
以上で、Date関数 Time関数 Now関数(現在の日付・時間を取得)の使い方でした。便利な機能ですのでサンプルプログラム等を参照して、作成する方法を覚えて下さい。
また、VBAに関するテクニックや便利な手法などをこのサイトに掲載していきますので、定期的に参照していただけると幸いです。

 

AKIRA