【ExcelVBA・マクロ】セル内の全角数字を一括で半角に変換するエクセルマクロ【業務効率化】

ExcelVBA

 Excelで入力したデータに、全角の数字(12345…)半角の数字(12345…)が混ざってしまうことはありませんか?
 特にシステムへのデータ取込みや他部署とのデータ共有時に、数字が全角だとエラーになったり、揃っていないことで処理が止まるケースがあります。

 この記事では、セル内の全角数字を一括で半角に変換するエクセルマクロをご紹介します。

動作イメージはこちら

こんな方におすすめ

  • 名簿やデータ入力で全角と半角が混じってしまい整えたい方
  • システムにCSVで取り込む際に全角数字だとエラーになる方
  • 手作業で直すのが面倒で、自動で統一したい方

シートの確認

今回はこのようなシートを使います。A列に名前が入力されていて、B列に年齢が入力されています。B列は一部全角数字が入力されています。

B列に入力されている全角数字を半角数字に変換していきます。

VBAコード

全角数字を半角数字に変換するコード

Sub ZenkakuToHankaku()
    Dim rng As Range
    Dim cell As Range
    Dim txt As String
    Dim i As Long
    
    ' 選択範囲を対象にする
    Set rng = Selection
    
    For Each cell In rng
        If VarType(cell.Value) = vbString Or VarType(cell.Value) = vbDouble Then
            txt = CStr(cell.Value)
            ' 全角数字(0~9)を半角に変換
            For i = 0 To 9
                txt = Replace(txt, ChrW(&HFF10 + i), CStr(i))
            Next i
            cell.Value = txt
        End If
    Next cell
    
    MsgBox "全角数字を半角に変換しました!", vbInformation
End Sub

コードの説明

  • Selection : 現在選択している範囲を対象に処理します
  • ChrW(&HFF10 + i) : Unicodeで全角数字「0〜9」を表すコード
  • Replace : 全角の「0〜9」を対応する半角「0〜9」に置き換え
  • VarType : セルの値が文字列や数値のときだけ処理するように制御

マクロ実行

さきほど入力したコードを実行すると、B列に入力されている全角数字が半角数字に変換されました。

コメント

タイトルとURLをコピーしました