テキストの改行を全削除する方法【まとめ】

本稿では、ファイル内の文章やコピーしたテキストの改行を一括で削除する方法をまとめます。WordやExcelでの操作に加え、英文などで単語がつながらないよう、改行を半角スペースに置き換える方法も扱います。

操作は主にWindows版のデスクトップアプリを想定しています。画面上の項目名はバージョンによって異なる場合があります。Linuxコマンドは扱いません。

目次

目的に合った方法を選んでください。

やりたいこと 使う方法
コピーした短い文章を手軽に1行にする ブラウザのアドレスバー(空白も変わる場合があります)
テキストの改行を削除、または空白に置換する TeraPadの一括置換
Word文書の段落区切りや手動改行を取り除く Wordの検索と置換
Excelの一つのセル内にある改行を取り除く SUBSTITUTE・CLEAN関数、または検索と置換
Excelで複数行のセルに分かれた文章を一つにまとめる TEXTJOIN関数・文字列の連結

削除と空白への置換の違い / 改行が消えない場合

改行を「削除する」か「空白に置き換える」か

同じ1行の文章にする場合でも、改行の前後をそのままつなぐか、間に空白を入れるかで結果が変わります。例えば、Hello〈改行〉worldを処理すると、次のようになります。ここでの「〈改行〉」は、実際に行が変わる位置を表しています。

  • 改行を削除する:Helloworldになります。置換後の文字列は空欄にします。
  • 改行を半角スペースに置き換える:Hello worldになります。置換後の文字列に半角スペースを1個入れます。

英文を行末で折り返したテキストでは、単語の間に必要な空白を残すため、通常は後者を使います。ただし、行末や次の行の先頭に空白が既にある場合は、置換後に空白が重なることがあります。

また、画面の幅に合わせた自動折り返しは、実際に入力された改行とは別です。自動折り返しだけなら、削除すべき改行文字はありません。文書全体を置換すると段落の区切りも失われるので、必要な範囲を選び、元の文章を残してから操作しましょう。

ブラウザのアドレスバーを使う

短い文章を手軽に1行にする小ワザです。Chromeの画面上部にある、URLを入力する欄(アドレスバー)を使います。Webページ内の検索欄ではありません。

  1. アドレスバーをクリックし、改行を含むテキストを貼り付けます。
  2. Enterキーは押さず、アドレスバー内の文字列をCtrl+Aで全選択し、Ctrl+Cでコピーします。
  3. 貼り付け先に戻り、Ctrl+Vで貼り付けて結果を確認します。

Chromeのアドレスバーに複数行の文章を貼り付けた例図.Chromeのアドレスバー(掲載時の画面)

この方法では、入力内容によって改行部分が削除されたり、空白に置き換わったりします。先頭・末尾の空白も取り除かれるため、改行以外を正確に保ちたい場合や、置換後の空白を自分で指定したい場合は、以下の一括置換を使ってください。

TeraPadで改行を一括置換する

TeraPadはWindows向けのテキストエディタです。必要な場合は公式サイトから入手してください。改行を表す検索用の記号\nを使うと、改行をまとめて置換できます。

  1. TeraPadに文章を貼り付けるか、編集するテキストファイルを開きます。
  2. Ctrl+Rで置換画面を開き、「検索する文字列」に\nを入力します。
  3. オプションの「\n=改行、\t=TAB」を含む項目にチェックを入れます。日本語環境ではバックスラッシュが円記号に見える場合があります。
  4. 削除する場合は「置換後の文字列」を空欄にし、空白に置き換える場合は半角スペースを1個入力します。
  5. 「すべて置換」を選び、確認画面が出たら対象範囲を確認して実行します。

例えば、次の英文では単語の境目にある改行を半角スペースへ置き換えると、一続きの文章として読めるようになります。

» 演説の一節(改行あり)

America, in the face of our common dangers, in this winter
of our hardship, let us remember these timeless words. With
hope and virtue, let us brave once more the icy currents, and
endure what storms may come. Let it be said by our children’s
children that when we were tested, we refused to let this
journey end, that we did not turn back nor did we falter; and
with eyes fixed on the horizon and God’s grace upon us, we
carried forth that great gift of freedom and delivered it safely
to future generations.
Thank you. God bless you. And God Bless the United States of
America.

» 閉じる

TeraPadの置換画面。改行を検索するオプションを有効にし、検索欄にバックスラッシュとnを入力している図.TeraPadでの一括置換(掲載時の画面)

\nは、この設定を有効にしたTeraPadの検索欄で改行を指定するための表記です。ほかのソフトでも同じ表記が使えるとは限りません。Windowsのメモ帳で改行を検索欄に指定できない場合は、TeraPadまたは次のWordの方法を利用してください。

Wordで段落区切り・手動改行を削除する

Wordでは、Enterキーによる段落区切りと、Shift+Enterによる手動改行を区別します。見た目はどちらも次の行に移りますが、検索に使う記号が異なります。

取り除くもの 通常の入力操作 検索する文字列
段落記号 Enter ^p
任意指定の行区切り(手動改行) Shift+Enter ^l(小文字のエル)
  1. Ctrl+Hで「検索と置換」を開きます。
  2. 詳細設定を開き、「ワイルドカードを使用する」をオフにします。「あいまい検索」が有効な場合もオフにします。
  3. 「検索する文字列」に^pまたは^lを入力します。「特殊文字」から該当する項目を選んでも構いません。
  4. 「置換後の文字列」を空欄にします。改行部分に空白を入れたい場合は、半角スペースを1個入力します。
  5. まず1か所を置換して結果を確かめ、意図した結果になったら「すべて置換」を実行します。

両方の種類が含まれている場合は、それぞれについて操作します。段落記号を削除すると段落が結合され、段落単位の書式に影響する場合があります。見出しや段落を残したい文書では、文書全体ではなく必要な範囲を選択して置換してください。上記はデスクトップ版Wordを対象とする手順です。

Excelで改行を削除・置換する

Excelでは、まず一つのセル内に改行があるのか、文章が複数のセルに分かれているのかを確認します。セル内の改行を削除しても、A1、A2、A3に分かれた文章は一つのセルにまとまりません。

セル内の改行を関数で削除する

A1の内容を残して別のセルに結果を出したい場合は、B1などの空いているセルに次の式を入力します。Windows版ExcelでAlt+Enterにより入れたセル内改行(LF)を削除する式です。

=SUBSTITUTE(A1,CHAR(10),"")

CHAR(10)がLFを表し、""は空の文字列を表します。例えば、セル内の東京都〈改行〉千代田区は東京都千代田区になります。改行を半角スペースに置き換えるなら、次の式を使います。

=SUBSTITUTE(A1,CHAR(10)," ")

改行に加えてタブなどの制御文字も取り除きたい場合は、次のCLEAN関数も使えます。

=CLEAN(A1)

CLEAN関数はASCIIコード0~31の制御文字を削除します。改行だけを選んで削除する関数ではないので、タブなどを残したい場合はSUBSTITUTE関数を使ってください。また、CLEAN関数ですべてのUnicodeの不可視文字が消えるわけではありません。

同じ処理を複数行に適用するには、B1の式を必要な行までコピーします。結果を元の列へ戻す場合は、結果のセルをコピーして「値」として貼り付けます。式をそのまま元の列に貼り付けないようにしてください。

セル内の改行を検索と置換で削除する

元のセルの内容を直接書き換える場合は、Windows版Excelの「検索と置換」を使えます。

  1. 一部だけを処理する場合は、対象のセル範囲をあらかじめ選択します。
  2. Ctrl+Hで「検索と置換」を開きます。
  3. 「検索する文字列」を空にしてから、その欄でCtrl+Jを1回押します。改行文字(LF)が入力されますが、通常の文字のようには見えません。
  4. 削除する場合は「置換後の文字列」を空欄にします。空白に置き換える場合は、半角スペースを1個入力します。
  5. 「オプション」で検索場所を確認します。現在のシートなら「シート」、ブック全体なら「ブック」を選びます。「セル内容が完全に同一であるものを検索する」はオフにします。
  6. 対象範囲を確認して「すべて置換」を実行します。

一つのセルを選択しただけでは、そのセルだけが処理対象になるとは限りません。1セルだけを加工する場合や元の内容を残したい場合は、上の関数を使う方法が分かりやすいです。Ctrl+Jで指定するのはLFなので、外部から取り込んだテキストで改行が残る場合は、末尾の確認事項も参照してください。

複数のセルに分かれた文章を一つにまとめる

コピーした文章をExcelに貼り付けると、次の図のように1行ずつ別のセルに入ることがあります。この場合は、改行の削除ではなく、セルの内容を連結します。

英文の各行がExcelのA列の別々のセルに入っている例図.文章が複数のセルに分かれた例

Excel 2019以降やMicrosoft 365では、TEXTJOIN関数を使えます。A1~A100の文字列を半角スペースでつなぎ、空白セルを無視するには、範囲外の空いているセルに次の式を入力します。

=TEXTJOIN(" ",TRUE,A1:A100)

間に空白を入れずにつなぐ場合は、先頭の" "を""に変えます。A1:A100は実際の範囲に合わせて変更してください。この式はセル同士を連結するもので、各セルの内部にある改行はそのまま残ります。

TEXTJOIN関数が使えない場合は、従来の方法でも連結できます。B1に=A1を入力し、B2に次の式を入力します。

=B1&" "&A2

B2の式を文章の最終行まで下方向にコピーすると、B列の最後のセルに全体を連結した結果が入ります。引用符は、数式をコピーしてそのまま使えるよう半角の"で入力してください。

B列に連結式を下方向へコピーして、A列の文章を順につないだ例図.連結式を下方向にコピーする方法

Excelの1セルに格納できる文字数は32,767文字です。TEXTJOINの結果がこの上限を超えるとエラーになるので、長い文書はテキストエディタで処理する方が適しています。

改行が消えない場合に確認すること

実際の改行ではなく、自動折り返しではありませんか?

ウィンドウやセルの幅を変えると行の切れ目が変わる場合は、自動折り返しの可能性があります。Excelでは「折り返して全体を表示する」の設定も確認してください。表示上の折り返しは、改行文字の置換では消せません。

取り込んだテキストにCRが含まれていませんか?

外部のテキストには、LFだけでなくCR(CHAR(13))やCRとLFの組み合わせ(CRLF)が含まれる場合があります。ExcelでCRとLFをどちらも削除するには、次の式を使います。

=SUBSTITUTE(SUBSTITUTE(A1,CHAR(13),""),CHAR(10),"")

この式はCRとLFを空白に置き換えず、削除する式です。Unicodeの行区切り文字などは対象外なので、それでも残る場合は、どの文字が含まれているかを確認する必要があります。

PDFからコピーした文章の単語がつながっていませんか?

英文では、改行を空白に置き換える必要がある箇所と、単語の途中で分割されている箇所が混在する場合があります。また、行末のハイフンは改行を削除しても残ります。PDF由来の文章は、変換後に単語の境目や段落を確認してください。

参考資料

コメントを残す

メールアドレスが公開されることはありません。 ※ が付いている欄は必須項目です