教えて!ExcelVBA!

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

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

f:id:m_kbou:20200420123346p:plain

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

 

 

構文

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

TimeSerial([時],[分],[秒])

[説明]:

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

[記述例]:

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

 

使い方

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

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

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

[プログラミング例]:

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

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

f:id:m_kbou:20210423092629p:plain
※上記の記述例は、VBE(VBA記述画面)に記述しないと実行ができません。VBEの開き方についてはこちらを参考にして下さい。 

[実行例]:

①<実行>ボタンには上記のプログラミング例のプログラムが登録されています。この<実行>ボタンをクリックします。(※ボタンの作り方やボタンにプログラムを割り当てるにはこちらを参考にして下さい。)

f:id:m_kbou:20210423092652p:plain

②結果は以下の様に表示されます。各数字が時間に変換され、MsgBoxで「10:20:30」が表示されます。

f:id:m_kbou:20210423092705p:plain

[サンプル]:

上記で説明したファイルをダウンロードできます。ご自由にお使い下さい。

drive.google.com

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

 

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

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

[プログラミング例]:

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

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

f:id:m_kbou:20210423092904p:plain

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

[実行例]:

①<実行>ボタンには上記のプログラミング例のプログラムが登録されています。この<実行>ボタンをクリックします。(※ボタンの作り方やボタンにプログラムを割り当てるにはこちらを参考にして下さい。)

f:id:m_kbou:20210423092920p:plain

②結果は以下の様に表示されます。現在の時刻が「6:31:59」のため、Hour関数とNow関数を使用したHour(Now)は「6」、Minute関数とNow関数を使用したMinute(Now)は「31」、Second関数とNow関数を使用したSecond(Now)は「59」となる事から、MsgBoxで「6:31:59」が表示されます。

f:id:m_kbou:20210423092932p:plain

[サンプル]:

上記で説明したファイルをダウンロードできます。ご自由にお使い下さい。

drive.google.com

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

 

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

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

[プログラミング例]:

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

まず最初に現在の時刻を表示し、次に1分後の時刻を表示します。現在の時刻の表示については、上記の「関数を指定して時間に変換する方法」での説明を参考にして下さい。結果、1分後時刻については「[時]が現在時間で、[分]が現在時間に1分を足した分数で、[秒]が現在秒数をMsgBoxで表示して下さい。」との意味になります。

f:id:m_kbou:20210423093030p:plain

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

[実行例]:

①<実行>ボタンには上記のプログラミング例のプログラムが登録されています。この<実行>ボタンをクリックします。(※ボタンの作り方やボタンにプログラムを割り当てるにはこちらを参考にして下さい。)

f:id:m_kbou:20210423093042p:plain

②結果は以下の様に表示されます。現在の時刻は「6:35:03」となり、1分後の時間は[時]に「Hour(Now)」を、[分]に「Minute(Now) + 1」を、[秒]に「Second(Now)」を指定する事で、[時]は「6」、[分]は「35+1=36」、[秒]は「3」となります。よって、MsgBoxで「現在時刻、6:35:03 1分後時刻、6:36:03」が表示されます。

f:id:m_kbou:20210423093054p:plain

[サンプル]:

上記で説明したファイルをダウンロードできます。ご自由にお使い下さい。

drive.google.com

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

 

プログラミング(サンプル)

プログラミング事例を紹介します。

www.osiete-excelvba.work

 

おわりに

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