教えて!ExcelVBA!

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

【ExcelVBA 関数】TimeValue関数で文字列時刻を時刻に変換する方法を教えて!

f:id:m_kbou:20200420123610p:plain

文字列時刻を時刻に変換する方法について紹介します。他のアプリケーションで使用している時刻が文字列であった場合、Excelで時刻として使用する場合は時刻データへの変換が必要になります。TimeValue関数を使用して時刻データへ変換する方法を説明します。

 

 

構文

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

TimeValue(”[文字列]”)

[説明]:

指定した文字列時刻を時刻データに変換します。

[文字列] 時刻を表す文字列を記述します。
※「”」(ダブルクォーテーション)で囲みます。

[記述例]:

TimeValue("2020年2月13日 午前10時10分")
TimeValue("令和2年2月13日 午前10時10分")

 

使い方

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

文字列の「YYYY年MM月DD日 午前HH時MM分」を時刻に変換する方法

文字列の”YYYY年MM月DD日 午前HH時MM分”を時刻に変換する方法について説明します。

[プログラミング例]:

Sub サンプル()

  MsgBox TimeValue("2020年2月13日 午前10時10分")

End Sub

「文字列の”2020年2月13日 午前10時10分”を時刻に変換してMsgBoxで表示して下さい。」との意味になります。

f:id:m_kbou:20210423101159p:plain

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

[実行例]:

①<実行>ボタンをクリックします。

f:id:m_kbou:20210423101212p:plain

②結果は以下の様に表示されます。時刻のみが抽出され、MsgBoxで「10:10:00」が表示されます。

f:id:m_kbou:20210423101224p:plain

[サンプル]:

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

drive.google.com

文字列の「YYYY年MM月DD日 午前HH時MM分」を時刻に変換する方法についての説明は以上です。

 

文字列の「和暦YY年MM月DD日 午前HH時MM分」を時刻に変換する方法

文字列の”和暦YY年MM月DD日 午前HH時MM分”を時刻に変換する方法について説明します。

[プログラミング例]:

Sub サンプル()

  MsgBox TimeValue("令和2年2月13日 午前10時10分")

End Sub

「文字列の”令和2年2月13日 午前10時10分”を時刻に変換してMsgBoxで表示して下さい。」との意味になります。

f:id:m_kbou:20210423101333p:plain

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

[実行例]:

①<実行>ボタンをクリックします。

f:id:m_kbou:20210423101347p:plain

②結果は以下の様に表示されます。時刻のみが抽出され、MsgBoxで「10:10:00」が表示されます。

f:id:m_kbou:20210423101359p:plain

[サンプル]:

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

drive.google.com

文字列の「和暦YY年MM月DD日 午前HH時MM分」を時刻に変換する方法についての説明は以上です。

 

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

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

www.osiete-excelvba.work

 

おわりに

今回はTimeValue関数を使用した文字列時刻を時刻に変換する方法について説明しました。上記の内容からもわかる通り、文字列に日付が含まれていてもTimeValue関数が返すのは時刻部分のみとなります。注意して下さい。また、類似の内容として、文字列日付を日付に変換する方法もあります。こちらも参考にして下さい。