Excel VBA StrConv関数 全角から半角、大文字から小文字に変換する方法

Excel VBA

この記事では、Excel VBAでStrConv関数を使用して、全角から半角、大文字から小文字に変換する方法について説明します。

StrConv関数

Excelで文字の全角、半角や、大文字、小文字を変換するには、StrConv関数を使用します。

構文

StrConv(string, conversion)

StrConv 関数の構文には、次の引数があります。

string:

 必須です。変換する文字列式を指定します。

conversion:

 必須です。整数型の値を指定します。 実行する変換の定数、または値の指定します。

 複数の組み合わせも可能です。

 例えば、「半角」で「大文字」の場合、「vbNarrow + vbUpperCase」のように、「+」を使って、複数の変換方法を入力します。

 ただし、「ひらがな」と「カタカナ」のように、同時に指定できないものもあります。

■変換する定数の値

定数 説明
vbUpperCase 1 文字列を大文字に変換します。
vbLowerCase 2 文字列を小文字に変換します。
vbProperCase 3 文字列内の各単語の先頭の文字を大文字に変換します。
vbWide 4 文字列内の半角文字 (1 バイト) を全角文字 (2 バイト) に変換します。
vbNarrow 8 文字列内の全角文字 (2 バイト) を半角文字 (1 バイト) に変換します。
vbKatakana 16 文字列内のひらがなをカタカナに変換します。
vbHiragana 32 文字列内のカタカナをひらがなに変換します。
vbUnicode 64 システムの既定のコード Unicode 使用して、文字列を既定の文字列に変換します。
vbFromUnicode 128 Unicode からシステムの既定のコード ページに文字列を変換します。

大文字に変換する

StrConv関数を使用して、氏名(ローマ字)列の値を大文字に変換します。

excel 氏名

 

■プログラム例

Sub Sample01Long()
    Dim i As Integer    '繰り返し処理用の変数
    
    '「氏名(ローマ字)」の件数だけ処理を繰り返す
    For i = 2 To Range("B1:B140").Rows.Count
        'セルの値を「大文字」にする
        Cells(i, 2).Value = StrConv(Cells(i, 2).Value _
            , vbUpperCase)
    Next
End Sub

 

■実行結果

氏名(ローマ字)列の値が、大文字に変換されました。

excel 氏名

 

半角に変換する

氏名(ローマ字)列の値を大文字に変換しましたが、全角と半角が混ざっています。そのため、半角文字に統一します。

■プログラム例

Sub Sample02()
    Dim i As Integer    '繰り返し処理用の変数
    
    '「氏名(ローマ字)」の件数だけ処理を繰り返す
    For i = 2 To Range("C1:C140").Rows.Count
        'セルの値を「半角」にする
        Cells(i, 3).Value = StrConv(Cells(i, 3).Value, vbNarrow)
    Next
End Sub

■実行結果

氏名(ローマ字)列の値が、半角に変換されました。

excel 氏名

 

半角で小文字に変換する

メールアドレス列は、大文字小文字、全角半角が混ざっています。

半角で小文字に統一します。

■プログラム例

Sub Sample03()
    Dim i As Integer    '繰り返し処理用の変数
    
    '「メールアドレス」の件数だけ処理を繰り返す
    For i = 2 To Range("D1:D140").Rows.Count
        'セルの値を「半角」、「小文字」にする
        Cells(i, 3).Value = StrConv(Cells(i, 3).Value, vbNarrow + vbLowerCase)
    Next
End Sub

 

■実行結果

メールアドレス列の値が、半角で小文字に変換されました。

excel メールアドレス

 

まとめ

今回はStrConv関数を使用して、文字の全角、半角や、大文字、小文字を変換する方法について説明しました。

 

タイトルとURLをコピーしました