この記事では、ExcelのVBAマクロを使用して、全角と半角を一括で変換する方法について解説していきます。
ポイントとしては、`Replace`関数、`Mid`関数を使用することです。
なお、下記の解説では完全な初心者でもわかりやすいようにあえて変数名(あなた自身が名付けていい場所)を少々変わった名称にしております。
そのため、あなた自身がご活用の際には、ここを適切な(英語表記でしっくりくるものが一般的)ものに変更してご活用くださいね。
それでは詳しく見ていきましょう!
VBAマクロで全角と半角を一括変換(数字のみ)する方法【A列全体、全角から半角を例に【Replace関数】
それではまず、全角数字を半角数字に一括変換する方法について解説していきます。
Alt + F11にてVBE画面を開いて、以下コードをコピペしましょう。
Sub ZenkakuToHankakuSuuji()
Dim rng As Range
Dim suuchi As String
Dim i As Long
Set rng = Range("A1:A" & Cells(Rows.Count, 1).End(xlUp).Row)
For Each cell In rng
suuchi = cell.Value
For i = 1 To Len(suuchi)
If Mid(suuchi, i, 1) Like "0-9" Then
Mid(suuchi, i, 1) = ChrW(AscW(Mid(suuchi, i, 1)) - &HFFE0)
End If
Next i
cell.Value = suuchi
Next cell
End Sub
コードのAlt+F8を押し、マクロ選択画面でZenkakuToHankakuSuuji関数を実行します。
このコードでは、A列全体の全角数字を半角数字に一括変換します。
`Mid`関数を使用して、文字列内の全角数字を一文字ずつ取り出し、その文字のユニコード値を変更して半角に変換しています。
VBAマクロで半角と全角を一括変換(英数字のみ)する方法【A列全体、半角から全角を例に【Replace関数】
続いては、半角英数字を全角英数字に一括変換する方法について解説していきます。
Alt + F11にてVBE画面を開いて、以下コードをコピペしましょう。
Sub HankakuToZenkakuEisuji()
Dim rng As Range
Dim moji As String
Set rng = Range("A1:A" & Cells(Rows.Count, 1).End(xlUp).Row)
For Each cell In rng
moji = cell.Value
moji = Replace(moji, "A", "A")
moji = Replace(moji, "B", "B")
' ... (同様の処理をZまで繰り返す)
cell.Value = moji
Next cell
End Sub
コードのAlt+F8を押し、マクロ選択画面でHankakuToZenkakuEisuji関数を実行します。
このコードでは、A列全体の半角英数字を全角英数字に一括変換します。
`Replace`関数を使用して、文字列内の半角英数字を全角英数字に変換しています。
VBAマクロで全角と半角を一括変換(スペースのみ)する方法【範囲指定、全角から半角を例に【Replace関数】
続いては、全角スペースを半角スペースに、かつ範囲指定をすることでの一括変換する方法について解説していきます。
Alt + F11にてVBE画面を開いて、以下コードをコピペしましょう。
Sub ZenkakuSpaceToHankakuSpace()
Dim rng As Range
Dim kukan As String
Set rng = Range("A1:A10") 'こちらの範囲を適切に変更してください
For Each cell In rng
kukan = cell.Value
kukan = Replace(kukan, " ", " ")
cell.Value = kukan
Next cell
End Sub
コードのAlt+F8を押し、マクロ選択画面でZenkakuSpaceToHankakuSpace関数を実行します。
このコードでは、指定範囲内の全角スペースを半角スペースに一括変換します。`Replace`関数を使用して、文字列内の全角スペースを半角スペースに変換しています。
まとめ vbaマクロで全角から半角に変換(英数字、スペース、範囲指定)する方法
以上で、VBAマクロを使用してExcel内の全角と半角を一括変換する方法についての解説を終了します。
各方法を活用して、効率的に作業を進めてくださいね!