VBA 文字列を変換する(CStr/CInt/StrConv)

VBA の文字列を変換するサンプルです。Excel、Accessとも同じです。

目次

サンプル 数値を文字列にする(CStr)
  文字列を数値にする(CInt)
  文字を変換する(StrConv)

数値を文字列にする(CStr)

CStr(値)
Sub test1()
    
    Dim a As Integer
    a = 100
    
    b = CStr(a)
    Debug.Print (b) ' 100
    Debug.Print (VarType(b)) ' 8 String
    
    Dim c As Long
    c = 100
    
    D = CStr(c)
    Debug.Print (D) ' 100
    Debug.Print (VarType(b)) ' 8 String
End Sub

6,13行目は、CStr関数で数値を文字列にしています。
VarTypeはデータ型を調べる関数です。

文字列を数値にする(CInt/CLng)

CInt(値)
CLng(値)
Sub test1()
    
    Dim a As String
    a = "100"
    
    b = CInt(a)
    Debug.Print (b) ' 100
    Debug.Print (VarType(b)) ' 2 Integer
    
    c = CLng(a)
    Debug.Print (c) ' 100
    Debug.Print (VarType(c)) ' 3 Long
End Sub

6行目は、CInt関数で文字列をInteger型にしています。
10行目は、CLng関数で文字列をLong型にしています。
VarTypeはデータ型を調べる関数です。

文字を変換する(StrConv)

StrConv(文字列, 定数または数値)
定数 数値 説明
vbUpperCase 1 大文字に変換します。
vbLowerCase 2 小文字に変換します。
vbProperCase 3 最初の文字を大文字に変換します。
vbWide 4 半角 (1 バイト) 文字を全角 (2 バイト) 文字に変換します。
vbNarrow 8 全角 (2 バイト) 文字を半角 (1 バイト) 文字に変換します。
vbKatakana 16 ひらがなをカタカナに変換します。
vbHiragana 32 カタカナをひらがなに変換します。
vbUnicode 64 文字列をUnicodeに変換します。 (Macintoshでは使用不可。)
vbFromUnicode 128 文字列をUnicodeからシステムの既定の文字コードに変換します。 (Macintoshでは使用不可。)

文字を変換するサンプルです。

Sub test1()

    ' 1 大文字に変換
    Dim a As String
    a = "abc"
    Debug.Print StrConv(a, vbUpperCase) 'ABC
    
    ' 2 小文字に変換
    Dim b As String
    b = "ABC"
    Debug.Print StrConv(b, vbLowerCase) 'abc

    ' 3 最初の文字を大文字に変換
    Dim c As String
    c = "abc def ghi"
    Debug.Print StrConv(c, vbProperCase) 'Abc Def Ghi
    
    ' 4 半角文字を全角文字に変換
    Dim d As String
    d = "abc ABC あ"
    Debug.Print StrConv(d, vbWide) 'abc ABC あ

    ' 8 全角文字を半角文字に変換
    Dim e As String
    e = "abc ABC あ"
    Debug.Print StrConv(e, vbNarrow) 'abc ABC あ
    
    ' 16 ひらがなをカタカナに変換
    Dim f As String
    f = "あいう"
    Debug.Print StrConv(f, vbKatakana) 'アイウ
    
    ' 32 カタカナをひらがなに変換
    Dim g As String
    g = "アイウ"
    Debug.Print StrConv(g, vbHiragana) 'あいう
    
    '128 文字列をUnicodeからShift-JIS
    Dim h As String
    h = "abc"
    Debug.Print LenB(h) '6 'バイト数は3ではなく6になる

    'vbFromUnicodeを使用
    Debug.Print LenB(StrConv(a, vbFromUnicode)) '3
    
End Sub

41行目のLenB関数は文字列のバイト数を表示します。
文字列は、半角英字3文字ですが6バイトと表示されます。
44行目でUnicodeからShift-JISに変換しLenB関数を実行すると3バイトになります。

関連の記事

VBA 文字列を切り出す(Left/Mid/Right)
Excel VBA 文字列を切り出す(Left/Mid/Right)
VBA Len/LenB 文字列の長さを取得する
VBA 大文字と小文字を変換(UCase/LCase)

△上に戻る