Dim A, B
'CStrを使って時間を文字列に変換
A = CDate("17:01:02") '17:01:02
B = CStr(A) '"17:01:02"'Formatを使って時間を文字列に変換
A = CDate("17:01:02") '17:01:02
B = Format(A, "hh:mm:ss") '"17:01:02"
B = Format(A, "h:m:s") '"17:1:2"
B = Format(A, "hhmmss") '"170102"
B = Format(A, "hh時mm分ss秒") '"17時01分02秒"
B = Format(A, "hh:mm:ss AM/PM") '"05:01:02 PM"'Formatを使って時間を数値に変換
B = Val(Format(A, "hhmmss")) '170102
では、解説していきます。
VBAでCStrを使って時間を文字列に変換
時間を文字列に変換するには、CStrを使います。
文字列に変換すると、データの切り出しがやりやすくなります。
では、CStrの使い方を、具体的なVBAコードを挙げて説明していきます。
使い方(CStr)
まず、CStrへの入力の仕方です。
次のように入力します。
『文字列 = CStr(時間)』
これで時間を、文字列に変換することができます。
具体的なVBAコードでCStrの動きを確認してみます。
時間を文字列に変換
時間を、CStrを使って文字列に変換してみます。
時間『17:01:02』を文字列に変換するVBAコードです。
Sub TEST1()
Dim A, B
A = CDate("17:01:02") '17:01:02'時間を文字列に変換
B = CStr(A)
MsgBox B
End Sub
実行してみます。
時間を文字列に変換
結果は、『"17:01:02"』となりました。
文字列となる
変数の型は、文字列となっています。
時間を文字列に変換できました。
時間を文字列に変換する際は、Formatの方が便利です。
Formatを使えば、自由自在に時間の表示を変更することができます。
VBAでFormatを使って時間を文字列に変換
時間をFormatを使って文字列に変換する方法をご紹介します。
Formatの使い方を、具体的なVBAコードを例として挙げて、解説していきます。
使い方(Format)
まず、時間を文字列に変換する、Formatには次のように入力します。
『文字列 = Format(時間, 書式)』
書式には、代表的な書式を記載しておきます。
短い時間:hh:mm:ss
短い時間:h:m:s
数値のみ:hhmmss
長い時間:hh時mm分ss秒
12時間表記:hh:mm:ss AM/PM
時間をhh:mm:ss形式の文字列に変換
時間をhh:mm:ss形式の文字列に変換してみます。
時間『17:01:02』をhh:mm:ss形式の文字列に変換するVBAコードです。
Sub TEST2()
Dim A, B
A = CDate("17:01:02") '17:01:02'時間をhh:mm:ss形式の文字列に変換
B = Format(A, "hh:mm:ss")
MsgBox B
End Sub
実行してみます。
hh:mm:ss形式の文字列に変換
結果は、『"17:01:02"』となりました。
文字列となる
変数の型は、文字列となっています。
時間をh:m:s形式の文字列に変換
時間をh:m:s形式の文字列に変換してみます。
時間『17:01:02』をh:m:s形式の文字列に変換するVBAコードです。
Sub TEST3()
Dim A, B
A = CDate("17:01:02") '17:01:02'時間をh:m:s形式の文字列に変換
B = Format(A, "h:m:s")
MsgBox B
End Sub
実行してみます。
h:m:s形式の文字列に変換
結果は、『"17:1:2"』となりました。
文字列となる
変数の型は、文字列となっています。
時間をhhmmss形式の文字列に変換
時間をhhmmss形式の文字列に変換してみます。
時間『17:01:02』をhhmmss形式の文字列に変換するVBAコードです。
Sub TEST4()
Dim A, B
A = CDate("17:01:02") '17:01:02'時間をhhmmss形式の文字列に変換
B = Format(A, "hhmmss")
MsgBox B
End Sub
実行してみます。
hhmmss形式の文字列に変換
結果は、『"170102"』となりました。
文字列となる
変数の型は、文字列となっています。
さらに、文字列を数値に変換する、Valを使えば時間を数値6桁に変換することもできます。
やってみます。
時間『17:01:02』を、数値6桁に変換するVBAコードです。
Sub TEST5()
Dim A, B, C
A = CDate("17:01:02") '17:01:02'時間をhhmmss形式の文字列に変換
B = Format(A, "hhmmss")
'文字列を数値に変換
C = Val(B)
MsgBox C
End Sub
実行してみます。
数値6桁に変換
結果は、『170102』となりました。
数値となる
変数の型は、数値となっています。
時間を長い時間に変換
時間を長い時間の文字列に変換してみます。
時間『17:01:02』を長い時間の文字列に変換するVBAコードです。
Sub TEST6()
Dim A, B
A = CDate("17:01:02") '17:01:02'時間を長い時間の文字列に変換
B = Format(A, "hh時mm分ss秒")
MsgBox B
End Sub
実行してみます。
長い時間の文字列に変換
結果は、『"17時01分02秒"』となりました。
文字列となる
変数の型は、文字列となっています。
時間を12時間表記に変換
時間を12時間表記の文字列に変換してみます。
時間『17:01:02』を12時間表記の文字列に変換するVBAコードです。
Sub TEST7()
Dim A, B
A = CDate("17:01:02") '17:01:02'時間を12時間表記の文字列に変換
B = Format(A, "hh:mm:ss AM/PM")
MsgBox B
End Sub