Excel VBA | Cells を使ったデータクリーニング応用例(不要な空白や文字削除)

VBA
スポンサーリンク

Excelの実務では「入力データがバラバラ」「余計な空白や文字が混じっている」ことがよくあります。
そんなときに Cells を使って自動で整えると、分析や集計がスムーズになります。


1️⃣ 前後の空白を削除(Trim)

Sub TrimSpaces()
    Dim i As Long, lastRow As Long
    lastRow = Cells(Rows.Count, 1).End(xlUp).Row
    
    For i = 1 To lastRow
        If Cells(i, 1).Value <> "" Then
            Cells(i, 1).Value = Trim(Cells(i, 1).Value)
        End If
    Next i
End Sub
VB

👉 A列の文字列から「前後の余計なスペース」を削除。入力ミス対策に必須。


2️⃣ 全角スペースを削除(Replace)

Sub RemoveFullWidthSpaces()
    Dim i As Long, lastRow As Long
    lastRow = Cells(Rows.Count, 1).End(xlUp).Row
    
    For i = 1 To lastRow
        Cells(i, 1).Value = Replace(Cells(i, 1).Value, " ", "")
    Next i
End Sub
VB

👉 日本語入力で混じりやすい「全角スペース」を削除。


3️⃣ 特定文字を削除

Sub RemoveSymbols()
    Dim i As Long, lastRow As Long
    lastRow = Cells(Rows.Count, 1).End(xlUp).Row
    
    For i = 1 To lastRow
        Cells(i, 1).Value = Replace(Cells(i, 1).Value, "-", "")
    Next i
End Sub
VB

👉 電話番号やコードから「ハイフン」を削除。数値化したいときに便利。


4️⃣ 数字だけ残す(文字を削除)

Sub KeepNumbersOnly()
    Dim i As Long, j As Long, txt As String, result As String, lastRow As Long
    lastRow = Cells(Rows.Count, 1).End(xlUp).Row
    
    For i = 1 To lastRow
        txt = Cells(i, 1).Value
        result = ""
        For j = 1 To Len(txt)
            If Mid(txt, j, 1) Like "[0-9]" Then
                result = result & Mid(txt, j, 1)
            End If
        Next j
        Cells(i, 1).Value = result
    Next i
End Sub
VB

👉 「商品コード123ABC」→「123」だけ残す。数値抽出に使える。


5️⃣ 空白行を削除

Sub DeleteBlankRows()
    Dim i As Long, lastRow As Long
    lastRow = Cells(Rows.Count, 1).End(xlUp).Row
    
    For i = lastRow To 1 Step -1
        If Trim(Cells(i, 1).Value) = "" Then
            Rows(i).Delete
        End If
    Next i
End Sub
VB

👉 A列が空白の行を削除。データ整理の定番。


まとめ

  • Trim → 前後の空白を削除
  • Replace → 特定文字や全角スペースを削除
  • Like / Mid → 数字だけ抽出
  • Rows.Delete → 空白行を削除

💡 これらを組み合わせると「入力データを一発で整形」できます。
例えば「顧客リストの電話番号から空白・ハイフンを削除して数値化」などがすぐに可能です。

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