サイトについて      連絡先   検索

VBA 文字列を変換

はじめに

Excel VBA の 文字列 (String) を変換する方法を紹介します。

文字列の大文字と小文字、全角と半角などの変換をするには「StrConv 関数」を使用します。

文字列を数値に変換をするには「Val 関数」を使用します。

文字列を日付に変換をするには「CDate 関数」を使用します。

大文字を小文字へ変換

文字列を「大文字と小文字」、「全角と半角」、「ひらがなとカタカナ」などに変換するには「StrConv 関数」を使用します。引数には (文字列, 変換) を渡します。

変換には次の種類があります。

Dim s As String
s = StrConv("abc", vbUpperCase)
Debug.Print (s) ' "ABC"

s = StrConv("あいう", vbKatakana)
Debug.Print (s) ' "アイウ"

文字列を数値へ変換

VBA では数値型へ数字を入れると自動的に変換されます。

Dim i As Integer
i = "123"
Debug.Print (i) ' 123

明示的に文字列を数値に変換するには「Val 関数」を使用します。引数には (文字列) を渡します。

数値に変換できないときは 0 を返します。

Dim i As Integer
i = Val("123")
Debug.Print (i) ' 123

i = Val("あいう123")
Debug.Print (i) ' 0

指定した数値型 (Integer など) へ変換するには「CInt 関数」を使用します。

Dim i As Integer
i = CInt("123")
Debug.Print (i) ' 123

この方法では、変換できない値を変換したときにエラーになります。「IsNumeric 関数」で変換できるか判定できます。

IsNumeric 関数」の戻り値が True のときは数値に変換できます。

Dim s As String
s = "あ"
Dim i As Integer

If IsNumeric(s) = True Then
    ' 変換できるときのみ数値にする
    i = CInt(s)
End If

Debug.Print (i)

文字列を日付に変換

VBA では日付型へ日付文字列を入れると自動的に変換されます。

Dim d As Date
d = "2013/1/31"
Debug.Print (d) ' 2013/01/31

d = "1:2:3"
Debug.Print (d) ' 1:02:03

日付型へ変換するには「CDate 関数」を使用します。

Dim d As Date
d = CDate("2013/1/31")
Debug.Print (d) ' 2013/01/31

この方法では、変換できない値を変換したときにエラーになります。「IsDate 関数」で変換できるか判定できます。

IsDate 関数」の戻り値が True のときは日付に変換できます。

Dim s As String
s = "あいう"
Dim d As Date

If IsDate(s) = True Then
    ' 変換できるときのみ日付にする
    d = CDate(s)
End If

Debug.Print (d)

関連ページ