教えて!ExcelVBA!

ExcelVBAの基礎知識・書き方について説明していきます。

【ExcelVBA関数】TimeSerial関数で1分後の時間を調べる方法を教えて!

       f:id:m_kbou:20200209090547p:plain

1分後の時間を調べる方法について説明します。調べるにはTimeSerial関数を使用します。まず最初にTimeSerial関数の基本的な使い方を説明し、最後に1分後の時間を調べる方法について説明します。

 

【目次】

 

構文

記述方法は、以下の通りとなります。

=======================================================================

TimeSerial[時][分][秒]

=======================================================================

[説明]:

TimeSerial関数は引数「時」・「分」・「秒」で指定した整数値を時間に変換して返します。[時]には時間を表す整数値を0~23の範囲で指定し、[分]には分数を表す整数値を0~59の範囲で指定し、[秒]には秒数を表す整数値を0~59の範囲で指定します。内容を纏めると、「[時]・[分]・[秒]で指定した整数値を時間に変換して返して下さい。」との意味になります。

[記述例]:

TimeSerial(10, 20, 30)
TimeSerial(Hour(Now), Minute(Now), Second(Now))

 

使い方

使い方について、具体的に説明していきます。

整数値を指定して時間に変換する方法

時・分・秒に整数値を直接指定して時間に変換する方法について説明します。

[記述例]:

※以下の記述例は、VBE(VBA記述画面)に記述しないと実行ができません。VBEの開き方については、VBEの開き方を参考にして下さい。

-------------------------------------------------

Sub サンプル()
    MsgBox TimeSerial(10, 20, 30)
End Sub

-------------------------------------------------

[時]に「10」を、[分]に「20」を、[秒]に「30」を指定します。結果「時が10で、分が20で、秒が30の時間をMsgBoxで表示して下さい。」との意味になります。

[実行例]:

※10:20:30が表示されます。 

f:id:m_kbou:20200209090605p:plain

整数値を指定して時間に変換する方法についての説明は以上です。

 

関数を指定して時間に変換する方法

時・分・秒に関数を指定して時間に変換する方法について説明します。

[記述例]:

※以下の記述例は、VBE(VBA記述画面)に記述しないと実行ができません。VBEの開き方については、VBEの開き方を参考にして下さい。

-------------------------------------------------

Sub サンプル()
    MsgBox TimeSerial(Hour(Now), Minute(Now), Second(Now))
End Sub

-------------------------------------------------

[時]に「Hour(Now)」を、[分]に「Minute(Now)」を、[秒]に「Second(Now)」を指定します。結果「[時が現在時間で、[分が現在分で、[秒が現在秒の時間をMsgBoxで表示して下さい。」との意味になります。

[実行例]:

※現在の時間が8:59:20であるため、8:59:20が表示されます。 

f:id:m_kbou:20200209090619p:plain

関数を指定して時間に変換する方法についての説明は以上です。

 

1分後の時間を調べる方法

1分後の時間を調べる方法について説明します。

[記述例]:

※以下の記述例は、VBE(VBA記述画面)に記述しないと実行ができません。VBEの開き方については、VBEの開き方を参考にして下さい。

-------------------------------------------------

Sub サンプル()
    MsgBox "現在時刻、" & TimeSerial(Hour(Now), Minute(Now), Second(Now))  & Chr(13) & _
           "1分後時刻、" & TimeSerial(Hour(Now), Minute(Now) + 1, Second(Now))
End Sub

-------------------------------------------------

まず最初に現在の時刻を表示し、次に1分後の時刻を表示します。現在の時刻の表示については、上記の”関数を指定して時間に変換する方法”での説明を参考にして下さい。1分後の時間の表示から説明します。[時]に「Hour(Now)」を、[分]に「Minute(Now) + 1」を、[秒]に「Second(Now)」を指定する事で、現在の時刻が9:03:42である場合、[時]は「9」となり、[分]は「3+1=4」となり、[秒]は「42」となります。これによりTimeSerial関数では9:04:42の時間に変換されます。結果「[時が現在時間で、[分が現在時間に1分を足した分数で、[秒が現在秒数をMsgBoxで表示して下さい。」との意味になります。

[実行例]:

※現在時間が9:03:42、1分後時間が9:04:42が表示されます。 

f:id:m_kbou:20200209090630p:plain

1分後の時間を調べる方法についての説明は以上です。

 

おわりに

今回は、1分後の時間を調べる方法について説明しました。1分後の時間を調べて何に使うのか?と疑問に持たれた方も多いと思います。頻繁に使用されるプログラミング方法としては、1分後の時間を調べて、現在の時刻から1分間処理を停止させる等の処理で使用します。是非活用してみて下さい。