バックオフィス業務をしていると、システムから書き出したデータが「氏名 住所 連絡先」のように、一つのセルの中にスペース区切りで詰め込まれていること、ありますよね。
「これ、セルの中で改行されていれば読みやすいのに……」
そう思って、一つずつ「Alt + Enter」で改行を入れていませんか?
その作業、もし500行あったら数十分以上かかってしまいますよね。でも、VBAを使えばたったの1秒で終わります!
この記事では、セル内の「半角スペース」と「全角スペース」をすべて「改行」に置き換えるプログラムをご紹介します。
コピペで使えるVBAコード
さっそくですが、以下のコードを標準モジュールに貼り付けて使ってみてください。
Sub SpaceToLineBreak()
' 選択した範囲のセルを対象にします
Dim targetRange As Range
Set targetRange = Selection
Dim cell As Range
' 画面の更新を止めて高速化
Application.ScreenUpdating = False
For Each cell In targetRange
' セルが空でない場合のみ処理
If cell.Value <> "" Then
' 1. 全角スペースを半角スペースに統一
Dim text As String
text = Replace(cell.Value, " ", " ")
' 2. 半角スペースを改行(vbLf)に置換
cell.Value = Replace(text, " ", vbLf)
' 3. 「折り返して全体を表示する」をオンにする
cell.WrapText = True
End If
Next cell
Application.ScreenUpdating = True
MsgBox "処理が完了しました!"
End Sub
このコードのポイント
このコードには、初心者がつまずきやすいポイントを解決する工夫をしています。
- 全角・半角スペースの両方に対応:データによってスペースの種類がバラバラでも大丈夫。一度すべて半角に統一してから改行に変えています。
- 「折り返して全体を表示する」を自動設定:Excelのセルは「折り返して全体を表示する」設定になっていないと、改行コードが入っても見た目が変わりません。このコードはその設定も自動でONにします。
- 圧倒的な作業の高速:画面更新を止めることで処理を高速化しています。
使い方3ステップ
- Excelで Alt + F11 を押して、VBAエディタを開く。
- 「挿入」→「標準モジュール」を選び、上のコードを貼り付ける。
- 改行したいセルをマウスで選択して、マクロを実行するだけ!
VBAを独学で学び、業務自動化に5年以上携わってきた私が、「本当に実務で役立った!」と感じた2冊を紹介します。 もう本選びで失敗したくない方は、よければ参考にしてみてください。
リンク
リンク

コメント