ExcelVBAで文字のうち数字のみ全角から半角に変換する

Excel VBA を使用して、テキストデータ内の数字のみを、全角から半角に変換する方法です。

数字のみを対象に変換することで、データの整形や処理を効率化できます。

目次

変更する例

変更前

変更後

数字のみ全角から半角に変換するコード

変換したい文字を選択した状態で実行します。

Sub sample()
    Dim rng As Range
    Dim cell As Range
    Dim str As String
    Dim i As Integer
    Dim fullWidthNums As String
    Dim halfWidthNums As String
    Dim pos As Integer ' pos 変数の宣言
    
    ' 全角数字と半角数字の文字列
    fullWidthNums = "0123456789"
    halfWidthNums = "0123456789"
    
    ' 変換対象のセル範囲を選択
    Set rng = Selection
    
    ' 選択範囲内の各セルを処理
    For Each cell In rng
        str = cell.Value
        For i = 1 To Len(str)
            ' 文字が数字かどうかをチェックし、全角数字なら半角に変換
            pos = InStr(fullWidthNums, Mid(str, i, 1))
            If pos > 0 Then
                Mid(str, i, 1) = Mid(halfWidthNums, pos, 1)
            End If
        Next i
        ' 変換した文字列をセルに戻す
        cell.Value = str
    Next cell
End Sub
よかったらシェアしてね!
  • URLをコピーしました!
  • URLをコピーしました!
目次