Excel VBAで空白と改行を瞬時に削除!業務効率化を実現

 Excelでデータを整理する際、セル内の不要な空白や改行を削除したいことがあります。特に、コピー&ペーストしたデータやCSVを取り込んだデータでは、余分なスペースや改行が含まれていることが多いです。
 そこで、空白と改行を一括削除するVBAマクロ を作成しました。今回は、そのVBAコードと使い方を紹介します。
 以下のVBAコードを実行すると、指定範囲内(A1:H20)のセルから 空白(全角スペースを除く)と改行(LF)を削除 できます。

Sub 空白と改行の削除()
  Dim cell As Range
  For Each cell In Range(“A1:H20”)    ‘ セルの値が文字列の場合のみ処理
    If VarType(cell.Value) = vbString Then      ‘ 空白と改行を削除
      cell.Value = Replace(Replace(cell.Value, ” “, “”), vbLf, “”)
    End If
  Next cell
End Sub

・マクロの仕組み
1. For Each ループで範囲内のセルを順番に処理
 For Each cell In Range(“A1:H20”) で、A1からH20までのセルを一つずつ処理します。
2. 文字列型(String)のセルだけを処理
 If VarType(cell.Value) = vbString Then によって、文字列以外(数値や空白セルなど)は処理しません。
3. Replace関数で空白と改行を削除
 Replace(cell.Value, ” “, “”) で、半角スペース を削除
 Replace(…, vbLf, “”) で、改行コード(LF) を削除
 Replace は左から順に処理されるので、まず空白を削除し、その後改行を削除します。

 全角スペースも削除したい場合は、以下のようにコードを変更します。
  cell.Value = Replace(Replace(Replace(cell.Value, ” “, “”), “ ”, “”), vbLf, “”)
 また、Range(“A1:H20”) の部分を変更すれば、処理する範囲を変えられます。例えば、すべてのデータが入っているセルを対象にする 場合は、次のように書きます。
  For Each cell In ActiveSheet.UsedRange
 この場合、シート内の データが入力されている範囲のみを処理できます。このVBAを使えば、Excelのセル内から 半角スペースと改行 を簡単に削除できます。さらに、全角スペースを削除したり、範囲を自由に変更したりすることで、用途に応じたカスタマイズも可能です。Excelのデータ整理を効率化するために、ぜひ活用してみてください!

Leave a comment