Sub TEST1()
'値のみをオブジェクトに格納
Dim Rg
Set Rg = ActiveSheet.Cells.SpecialCells(xlCellTypeConstants)
'0~9をループする
For i = 0 To 9
a = StrConv(i, vbWide) '全角の数字を作成
b = StrConv(i, vbNarrow) '半角の数字を作成
Rg.Replace a, b '数字を、全角から半角に置換する
Next
End Sub
上のVBAコードを、標準モジュールに貼り付けるだけです。
標準モジュールは、
「Alt + F11」で、VBE画面を開く
「挿入」タブ→「標準モジュール」
という流れで、作成できます。
VBAを実行すると、戻すことができないので、必ずバックアップを取っておきましょう。
1つの文字列で数字のみを「半角」に変換
次の文字列を用意しました。
では、実行してみます。
標準モジュールのところで「F5」を押します。
結果は、「あい-アイ-AB-0123456789」となりました。
数字のみを、半角に変換できています。
複数の文字列でも、数字のみを半角に変換することができます。
複数の文字列で数字のみを「半角」に変換
複数の文字列を用意しました。
では、実行してみます。
結果は、複数の文字列で、数字のみを半角に変換できました。
数式の数値を半角に変換
数式に入力された数値のみを、全角から半角に変換することもできます。
VBAコードは、こんな感じです。
Sub TEST2()
'数式のみをオブジェクトに格納
Dim Rg
Set Rg = ActiveSheet.Cells.SpecialCells(xlCellTypeFormulas)
'0~9をループする
For i = 0 To 9
a = StrConv(i, vbWide) '全角の数字を作成
b = StrConv(i, vbNarrow) '半角の数字を作成
Rg.Replace a, b '数字を、全角から半角に置換する
Next
End Sub