大体でIT

-ちょっと使えるネタを紹介-

大体でIT

Excel VBAで時間を文字列に変換する方法についてご紹介します。方法は2つあって、CStrとFormatを使う方法です。簡単に時間を文字列に変換したい場合は、CStrが便利です。時間の表示を自由自在に変換したい場合は、Formatが使えます。

はじめに

この記事では、時間を文字列に変換する方法をご紹介します。

時間を文字列に変換する方法は2つあって、CStrとFormatを使う方法があります。

簡単な方法は、CStrを使う方法です。

長い時間や12時間表記の文字列に変換したい、という場合は、Formatが使えます。

時間を文字列に変換できると、文字列を切り出したりすることが簡単になります。

では、解説していきます。

この記事で紹介すること

  • 時間を文字列に変換する方法

目次から見たい項目へ移動すると便利ですよ。

目次

ポイントとなるVBAコード

初めに、ポイントとなるVBAコードについて記載しておきます。

VBAコードだけ確認したい、という場合にご活用ください。

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

実行してみます。

時間を文字列に変換

時間をCStrを使って文字列に変換した結果

結果は、『"17:01:02"』となりました。

文字列となる

時間をCStrを使って文字列に変換した結果、変数の型は文字列となる

変数の型は、文字列となっています。

時間を文字列に変換できました。

時間を文字列に変換する際は、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形式の文字列に変換

Formatを使って時間をhh:mm:ss形式の文字列に変換した結果

結果は、『"17:01:02"』となりました。

文字列となる

Formatを使って時間をhh:mm:ss形式の文字列に変換した結果、変数の型は文字列となる

変数の型は、文字列となっています。

時間を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形式の文字列に変換

Formatを使って時間をh:m:s形式の文字列に変換した結果

結果は、『"17:1:2"』となりました。

文字列となる

Formatを使って時間をh:m:s形式の文字列に変換した結果、変数の型は文字列となる

変数の型は、文字列となっています。

時間を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形式の文字列に変換

Formatを使って時間をhhmmss形式の文字列に変換した結果

結果は、『"170102"』となりました。

文字列となる

Formatを使って時間をhhmmss形式の文字列に変換した結果、変数の型は文字列となる

変数の型は、文字列となっています。

さらに、文字列を数値に変換する、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桁に変換

時間をFormatを使って数値6桁に変換した結果

結果は、『170102』となりました。

数値となる

時間をFormatを使って数値6桁に変換したときの変数の型は数値となる

変数の型は、数値となっています。

時間を長い時間に変換

時間を長い時間の文字列に変換してみます。

時間『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

実行してみます。

長い時間の文字列に変換

Formatを使って時間を長い時間の文字列に変換した結果

結果は、『"17時01分02秒"』となりました。

文字列となる

Formatを使って時間を長い時間の文字列に変換した結果、変数の型は文字列となる

変数の型は、文字列となっています。

時間を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

実行してみます。

12時間表記の文字列に変換

Formatを使って時間を12時間表記の文字列に変換した結果

結果は、『"05:01:02 PM"』となりました。

文字列となる

Formatを使って時間を12時間表記の文字列に変換した結果、変数の型は文字列となる

変数の型は、文字列となっています。

おわりに

この記事では、時間を文字列に変換する方法をご紹介しました。

時間を文字列に変換する方法は2つあって、CStrとFormatを使う方法があります。

簡単な方法は、CStrを使う方法です。

長い時間や12時間表記の文字列に変換したい、という場合は、Formatが使えます。

時間を文字列に変換できると、文字列を切り出したりすることが簡単になります。

参考になればと思います。最後までご覧くださいましてありがとうございました。

関連する記事から探す

カテゴリから探す

カテゴリから見たい項目を探すと便利ですよ。

サイト内を検索する

↓キーワードを入力する

アーカイブから探す