Dim A, B
A = "17:1:2"
B = Hour(A) '『時』を取得
B = Minute(A) '『分』を取得
B = Second(A) '『秒』を取得'Formatを使う場合
A = "17:1:2"
B = Format(A, "hh") '『時』を取得
B = Format(A, "nn") '『分』を取得
B = Format(A, "ss") '『秒』を取得
では、解説していきます。
VBAで時間から時、分、秒を取得する
時間から時、分、秒を取得する方法をご紹介します。
使うVBA関数は次の3つです。
時間を取得:Hour
分を取得:Minute
秒を取得:Second
英語をそのまま入力すればいいんですね。簡単です。
では、実際にVBAコードを書いて試してみます。
時間から『時』を取得(Hour)
まず、時間から『時』を『Hour』を使って取得してみます。
時間『"17:1:2"』から『時』を取得するVBAコードです。
Sub TEST1()
Dim A, B
A = "17:1:2"
B = Hour(A) '『時』を取得
MsgBox B
End Sub
実行してみます。
『時』を取得
結果は、『17』時となりました。
時間から、『時』の部分だけが取得できています。
時間から『分』を取得(Minute)
つづいて、時間から『分』を『Minute』を使って取得してみます。
時間『"17:1:2"』から『分』を取得するVBAコードです。
Sub TEST2()
Dim A, B
A = "17:1:2"
B = Minute(A) '『分』を取得
MsgBox B
End Sub
実行してみます。
『分』を取得
結果は、『1』分となりました。
時間から、『分』の部分だけが取得できています。
時間から『秒』を取得(Second)
まず、時間から『秒』を『Second』を使って取得してみます。
時間『"17:1:2"』から『秒』を取得するVBAコードです。
Sub TEST3()
Dim A, B
A = "17:1:2"
B = Second(A) '『秒』を取得
MsgBox B
End Sub
実行してみます。
『秒』を取得
結果は、『2』秒となりました。
時間から、『秒』の部分だけが取得できています。
VBAでFormatを使って時、分、秒を取得する
時間から時、分、秒を取得する方法は、もう1つあります。
それは、Formatを使う方法で、次のように引数を入力します。
時間を取得:"hh"
分を取得:"nn"
秒を取得:"ss"
先ほどのHour、Minute、Secondと違う点は、文字列で取得するという点です。
必ず2文字で値を取得したいなど、形を整えて時、分、秒を取得したい場合に使えます。
時間から『時』を取得
時間からFormatを使って『時』を取得する方法をご紹介します。
Formatに『"hh"』を入力すると『時』を取得できます。
時間『"17:1:2"』からFormatを使って『時』を取得するVBAコードです。
Sub TEST4()
Dim A, B
A = "17:1:2"
B = Format(A, "hh") '『時』を取得
MsgBox B
End Sub
実行してみます。
『時』を取得
結果は、『17』時となりました。
時間から『時』が取得できています。
時間から『分』を取得
時間からFormatを使って『分』を取得する方法をご紹介します。
Formatに『"nn"』を入力すると『分』を取得できます。
時間『"17:1:2"』からFormatを使って『分』を取得するVBAコードです。
Sub TEST5()
Dim A, B
A = "17:1:2"
B = Format(A, "nn") '『分』を取得
MsgBox B
End Sub
実行してみます。
『分』を取得
結果は、『01』分となりました。
時間から『分』が取得できています。また、取得結果は、2文字です。
取得結果を2文字に統一したいという場合に、Formatが使えます。
時間から『秒』を取得
時間からFormatを使って『秒』を取得する方法をご紹介します。
Formatに『"ss"』を入力すると『秒』を取得できます。
時間『"17:1:2"』からFormatを使って『秒』を取得するVBAコードです。
Sub TEST6()
Dim A, B
A = "17:1:2"
B = Format(A, "ss") '『秒』を取得
MsgBox B
End Sub
Sub TEST7()
Dim A
'時、分、秒を時間に変換
A = TimeSerial(17, 1, 2)
MsgBox A
End Sub
実行してみます。
時、分、秒を時間に変換
結果は、『17:01:02』となりました。
時、分、秒を時間に変換できています。
実用例
時間から時、分、秒を取得するHour、Minute、Secondの実用例についてご紹介します。
InputBoxの時間から時、分、秒を取得してセルに入力
InputBoxに入力した時間から時、分、秒を取得してセルに入力する、というのをやってみます。
VBAコードはこちらです。
Sub TEST8()
Dim A
A = InputBox("時間を入力してください")
Cells(2, 1) = Hour(A) '『時』をセルに入力
Cells(2, 2) = Minute(A) '『分』をセルに入力
Cells(2, 3) = Second(A) '『秒』をセルに入力
End Sub
VBAコードを実行してみます。
InputBoxに時間を入力
InputBoxがでてきますので、時間『17:1:2』を入力して、OKをクリックします。
セルに時、分、秒を入力
それぞれのセルに時、分、秒が入力されました。
現在の時間から時、分、秒を取得する
つづいて、現在の時間から時、分、秒を取得する、というのをやってみます。
VBAコードです。
Sub TEST9()
Dim A, B, C, D
A = Time '現在の時間
B = Hour(A) & "時" '『時』を取得
C = Minute(A) & "分" '『分』を取得
D = Second(A) & "秒" '『秒』を取得
MsgBox A & vbLf & B & vbLf & C & vbLf & D
End Sub