← コード一覧へ戻る
基本行・列

セル内の改行コードを削除する

A1:A10に直接入力された文字列からセル内改行だけを取り除きます。行や列は削除しません。

実行前に確認

  • 対象の文字列を上書きします。通常の元に戻すは使えないため、実行前にブックのコピーを保存してください。
  • 行の削除やセルの移動は行いません。数式が返す改行はこの例では変更しません。

1サンプルコード

Sub Example1139()
    Dim ws As Worksheet
    Dim c As Range
    Dim s As String
    Set ws = ThisWorkbook.Worksheets("Sheet1")
    If MsgBox("A1:A10の文字列を改行なしの文字列に上書きします。続けますか?", vbYesNo + vbExclamation) <> vbYes Then Exit Sub
    For Each c In ws.Range("A1:A10").Cells
        If Not c.HasFormula And Not IsError(c.Value) Then
            If VarType(c.Value) = vbString Then
                s = Replace(CStr(c.Value), vbCr, "")
                c.Value = "'" & Replace(s, vbLf, "")
            End If
        End If
    Next c
End Sub
表で見る処理のイメージ実行前・実行後のセルを見比べる

A1:A10に直接入力された文字列からセル内改行だけを取り除きます。行や列は削除しません。

A・B・Cは列、1・2・3は行です。例えば「B2」はB列の2行目のセルです。この表は説明用のサンプルです。

実行前

実行前のサンプル。列記号と行番号でセルの位置を確認できます。
A
1東京 営業所
2大阪 支店
3123
4=1+1
5東京 本社
6—
7—
8—
9—
10—

実行後

実行後のサンプル。列記号と行番号でセルの位置を確認できます。
A
1東京営業所(注目セル)
2大阪支店(注目セル)
3123
4=1+1
5東京 本社
6—
7—
8—
9—
10—

色付きは注目する場所です。「—」は未入力、「(空文字)」は数式などが返す空の文字列を表します。

A1・A2は直接入力した改行付き文字列、A3は数値、A4は文字列として入力した「=1+1」、A5は="東京"&CHAR(10)&"本社"の数式結果です。「はい」を選ぶと直接入力文字列の改行だけを除きます。数値と数式は変更せず、先頭が=の文字列も数式へ変えません。先頭に付けるアポストロフィはセル画面には表示されません。

使い方・実行手順を確認する4つの手順で、コードの使い方を確認できます
  1. 1

    練習用のブックを.xlsm形式で保存し、Sheet1という名前のシートを用意します。A1:A10に文字を入れ、Alt+Enterでセル内改行を入れます。

  2. 2

    Alt+F11でVBEを開き、[挿入]→[標準モジュール]へコードを貼り付けます。

  3. 3

    A1:A10が対象範囲です。Replaceの最後の空文字を半角スペースにすると、改行を空白に置き換えられます。代入時の先頭のアポストロフィは、=などで始まる文字列を数式に変えず文字列として保つための指定です。

  4. 4

    マクロ内にカーソルを置いてF5で実行します。改行前後の文字がつながります。数式・数値・エラーのセルは変更しません。

使っている機能の公式ドキュメント(Microsoft Learn)