この記事では、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関数を使用して、氏名(ローマ字)列の値を大文字に変換します。

■プログラム例
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
■実行結果
氏名(ローマ字)列の値が、大文字に変換されました。

半角に変換する
氏名(ローマ字)列の値を大文字に変換しましたが、全角と半角が混ざっています。そのため、半角文字に統一します。
■プログラム例
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
■実行結果
氏名(ローマ字)列の値が、半角に変換されました。

半角で小文字に変換する
メールアドレス列は、大文字小文字、全角半角が混ざっています。
半角で小文字に統一します。
■プログラム例
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
■実行結果
メールアドレス列の値が、半角で小文字に変換されました。

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