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列に入力されている全角数字が半角数字に変換されました。

コメント