Excel

【Excel】VBAマクロで全角と半角を一括変換(数字のみ、英数字のみ、スペース、範囲指定など)【Replace関数、Mid関数】

当サイトでは記事内に広告を含みます
いつも記事を読んでいただきありがとうございます!!! これからもお役に立てる各情報を発信していきますので、今後ともよろしくお願いします(^^)/

この記事では、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内の全角と半角を一括変換する方法についての解説を終了します。

各方法を活用して、効率的に作業を進めてくださいね!