この記事では、文字を全角から半角に変換、小文字から大文字に変換など様々な変換方法を掲載しています。
入力フォームなどを作った場合、利用者ごとに数字やアルファベットなどの入力方式が全角文字だったり、半角文字だったりして統一出来ないといったことが発生します。
この場合の対処法としては、入力時に制限をかける方法と、入力後にプログラム側で変換をしてしまう方法が考えられます。
ここでは、入力後の文字列に対して全角や半角への変換を行う方法を掲載しています。
StrConv関数の構文
文字列の変換にはStrConv関数を利用します。StrConv関数を利用すれば、全角、半角、大文字、小文字、ひらがな、カタカナなど様々な変換が行えます。
(構文)
StrConv(string, conversion, [ LCID ])
(参考)https://docs.microsoft.com/ja-jp/office/vba/language/reference/user-interface-help/strconv-function
各パラメータの説明は下記のとおりです。
パラメータ | 説明 |
---|---|
string | 必須 変換する文字列を指定。 |
conversion | 必須 変換タイプを指定 (Integer型の数値ですが、定数が準備されています) |
LCID | オプション LocaleID |
変換タイプ(conversion)は下記の通りです、全角半角や大文字小文字以外にも様々な変換が可能です。
定数 | 値 | 説明 |
---|---|---|
vbUpperCase | 1 | 大文字に変換します。 |
vbLowerCase | 2 | 小文字に変換します。 |
vbProperCase | 3 | 文字列内のすべての単語の最初の文字を大文字に変換します。 |
vbWide | 4 | 全角文字に変換します。 |
vbNarrow | 8 | 半角文字に変換します。 |
vbKatakana | 16 | ひらがな文字をカタカナ文字に変換します。日本語環境 |
vbHiragana | 32 | カタカナ文字をひらがな文字に変換します。日本語環境 |
vbUnicode | 64 | システム既定の文字コードから Unicode に変換します。 |
vbFromUnicode | 128 | Unicode からシステムの既定の文字コードに変換します。 |
StrConv関数の使用例
下記は具体的な例として4パターンの使用例としてサンプルソースと変換結果を掲載しています。
1.全角から半角に変換
2.半角から全角に変換
3.小文字から大文字に変換
4.大文字から小文字に変換
Private Sub CommandButton1_Click()
Dim str As String
Dim ws As Worksheet
Set ws = ThisWorkbook.ActiveSheet
If IsNull(ws.Cells(2, 2).Value) = False Then
'1.全角 ⇒ 半角 に変換
ws.Cells(1, 3).Value = StrConv(ws.Cells(1, 1).Value, vbNarrow)
'2.半角 ⇒ 全角 に変換
ws.Cells(2, 3).Value = StrConv(ws.Cells(2, 1).Value, vbWide)
'3.小文字 ⇒ 大文字 に変換
ws.Cells(3, 3).Value = StrConv(ws.Cells(3, 1).Value, vbUpperCase)
'4.大文字 ⇒ 小文字 に変換
ws.Cells(4, 3).Value = StrConv(ws.Cells(4, 1).Value, vbLowerCase)
End If
End Sub
実行結果は下記の通りです。

全角半角や大文字小文字が混在する文字列を変換対象とした場合、その文字列の中で対象となる文字のみが変換された結果が返却されます。
例えば「ABCあDEF」という文字列を小文字に変換した場合、「あ」は対処外となり「abcあdef」という結果が返却されます。
コメント