全角・半角変換を行う
Excel VBA で全角・半角変換を行う方法
Excel VBA で全角・半角変換を行うには、主に以下の 2 つの方法があります。
StrConv関数を使用する
StrConv関数は、文字列を指定した形式に変換する関数です。全角・半角変換を行う場合は、以下の引数を使用します。
String: 変換対象の文字列
Conversion: 変換の種類を表す定数。以下の値を使用できます。
vbNarrow: 全角文字を半角文字に変換
vbWide: 半角文字を全角文字に変換
Locale: 変換に使用するロケール。省略可。省略した場合、システムの既定のロケールが使用されます。
例:全角文字を半角文字に変換
コード スニペット
Sub Sample_Narrow()
Dim strTarget As String
Dim strResult As String
strTarget = "全角文字列"
strResult = StrConv(strTarget, vbNarrow)
MsgBox strResult
End Sub
コードは注意してご使用ください。
2. Replace関数を使用する
Replace関数は、文字列中の特定の文字列を別の文字列に置き換える関数です。全角・半角変換を行う場合は、以下の引数を使用します。
Find: 置換対象となる文字列
Replace: 置換後の文字列
Subject: 置換対象となる文字列を含む文字列
Start: 置換対象となる文字列の検索を開始する位置。省略可。省略した場合、1 から検索が開始されます。
Count: 置換対象となる文字列を最大何回置き換えるか。省略可。省略した場合、すべての置換対象となる文字列が置き換えられます。
例:全角文字を半角文字に変換
コード スニペット
Sub Sample_Replace()
Dim strTarget As String
Dim strResult As String
strTarget = "全角文字列"
strResult = Replace(strTarget, "A", "A") ' 全角の A を半角の A に置き換え
strResult = Replace(strResult, "B", "B") ' 全角の B を半角の B に置き換え
' ... (以下略)
MsgBox strResult
End Sub
コードは注意してご使用ください。
3. その他の方法
上記以外にも、以下のような方法で全角・半角変換を行うことができます。
Asc関数とChr関数を使用する
コードページを変換する
これらの方法は、より高度なテクニックが必要となりますので、必要に応じて調べてみてください。
参考情報
StrConv関数
https://learn.microsoft.com/en-us/office/vba/language/reference/user-interface-help/strconv-function
Replace関数
https://learn.microsoft.com/en-us/office/vba/language/reference/user-interface-help/replace-function
Asc関数
https://learn.microsoft.com/en-us/office/vba/language/reference/user-interface-help/asc-function
Chr関数
https://learn.microsoft.com/en-us/office/vba/language/reference/user-interface-help/chr-function
この記事が気に入ったらサポートをしてみませんか?