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のデータ整理を効率化するために、ぜひ活用してみてください!
