excel

【Excel】エクセルの改行を削除・消す方法(一括削除・関数・置換で改行コードを消す)

当サイトでは記事内に広告を含みます

【Excel】エクセルの改行を削除・消す方法(一括削除・関数・置換で改行コードを消す)

Excelを使っていると、セル内の改行が邪魔になるケースが意外と多いものです。

コピーしたデータに不要な改行コードが含まれていたり、他のシステムから取り込んだデータが改行で乱れていたりと、改行の削除はExcel作業の中でも頻繁に求められる操作のひとつといえます。

この記事では、Excelのセル内改行を削除・消す方法を、一括削除・関数・置換の3つのアプローチから丁寧に解説しています。

初心者の方でも迷わず実践できるよう、手順ごとに具体的な操作をお伝えしていきますので、ぜひ最後まで読んでみてください。

Excelのセル内改行を削除する方法は「置換・関数・一括処理」の3つが基本

それではまず、Excelの改行を削除する方法の全体像について解説していきます。

Excelでセル内の改行を消す方法は、大きく分けて3つのアプローチが存在します。

置換機能を使う方法・関数を使う方法・VBAで一括処理する方法が代表的です。

それぞれに特徴があり、使う場面によって使い分けるのがベストといえます。

Excelのセル内改行(改行コード)は、WindowsではCHAR(10)、MacではCHAR(13)として扱われます。

このコードを意識することが、改行を正しく削除するうえでのポイントになります。

以下の表で、3つの方法の特徴を比較してみましょう。

方法 難易度 一括処理 数式不要 向いている場面
置換機能 ★☆☆ 素早く手動で削除したいとき
CLEAN関数 / SUBSTITUTE関数 ★★☆ × 数式で自動的に整形したいとき
VBAマクロ ★★★ × 大量データを定期的に処理したいとき

このように、目的や作業量によって最適な方法は変わってきます。

次のセクションから、それぞれの具体的な操作手順を順番に確認していきましょう。

【置換機能】Excelの改行コードを検索して一括削除する方法

続いては、Excelの置換機能を使った改行の一括削除について確認していきます。

置換機能は、特別な関数やVBAの知識がなくても使える、もっとも手軽な方法のひとつです。

「Ctrl + H」で開く「検索と置換」ダイアログを使うことで、改行コードを一括で消すことができます。

Ctrl+Hで「検索と置換」を開く

まず、改行を削除したいセル範囲を選択した状態で「Ctrl + H」を押します。

「検索と置換」ダイアログが表示されたら、「検索する文字列」の欄をクリックして選択してください。

そこで「Ctrl + J」を入力することで、改行コード(CHAR(10))を検索文字として指定することが可能です。

一見すると何も入力されていないように見えますが、カーソルが点滅していれば改行コードが正しく入力された状態といえます。

「置換後の文字列」を空白にして実行する

「置換後の文字列」の欄は、何も入力せずに空白のままにしておきます。

この状態で「すべて置換」ボタンをクリックすると、選択範囲内の改行コードがすべて削除されます。

改行を削除するのではなく、スペースや別の文字に置き換えたい場合は、「置換後の文字列」欄にその文字を入力すれば対応可能です。

検索する文字列:Ctrl + J(改行コード入力)

置換後の文字列:(空白のまま)

→「すべて置換」をクリックして完了

改行が消えない場合のチェックポイント

置換しても改行が消えない場合は、改行コードの種類が異なる可能性があります。

MacやWebからコピーしたデータには、CHAR(13)(キャリッジリターン)が含まれていることもあります。

その場合は、後述するCLEAN関数やSUBSTITUTE関数を組み合わせて使うことで対処できます。

置換後にセル内の折り返し設定が残っている場合は、セルの書式設定から「折り返して全体を表示する」のチェックを外すことも忘れずに確認してみてください。

【関数】CLEAN関数・SUBSTITUTE関数で改行コードを削除する方法

続いては、関数を使ってExcelの改行コードを削除する方法を確認していきます。

関数を使う方法は、元のデータを保持しながら別のセルに整形後のテキストを表示できるという大きなメリットがあります。

CLEAN関数で制御文字をまとめて削除する

CLEAN関数は、文字列から印刷できない制御文字(改行コードを含む)をすべて取り除いてくれる関数です。

使い方は非常にシンプルです。

=CLEAN(対象セル)

例:=CLEAN(A1)

A1セルに改行が含まれている場合、この数式を別のセルに入力するだけで改行が取り除かれたテキストが表示されます。

CLEAN関数はCHAR(10)やCHAR(13)などの複数の制御文字をまとめて削除できるため、さまざまな環境から取り込んだデータの整形に役立ちます。

SUBSTITUTE関数で特定の改行コードだけを削除する

SUBSTITUTE関数は、文字列内の特定の文字を別の文字に置換する関数です。

CHAR(10)を空文字列に置換することで、改行コードを削除することができます。

=SUBSTITUTE(対象セル, CHAR(10), “”)

例:=SUBSTITUTE(A1, CHAR(10), “”)

CLEAN関数との違いは、特定の改行コードのみを指定して削除できる点にあります。

CHAR(10)をCHAR(13)に変えたり、””の部分にスペースを入れて改行をスペースに変換したりと、柔軟にカスタマイズできるのが強みです。

CLEAN関数とSUBSTITUTE関数を組み合わせる応用技

CHAR(10)とCHAR(13)の両方が混在するデータを扱う場合は、2つの関数を組み合わせることで対処が可能です。

=CLEAN(SUBSTITUTE(A1, CHAR(13), “”))

または

=SUBSTITUTE(SUBSTITUTE(A1, CHAR(10), “”), CHAR(13), “”)

このように、関数を入れ子(ネスト)にすることで、複数種類の改行コードを一度に削除することができます。

Webスクレイピングや外部システムから取得したデータには、こうした混在ケースが多いため、ぜひ覚えておくと便利な技術といえます。

CLEAN関数は制御文字を全般的に削除するのに対し、SUBSTITUTE関数は特定の文字コードを指定して削除できます。

用途に応じて使い分けるか、組み合わせて使うことが最もパワフルな対処法です。

【VBA・一括削除】マクロを使って複数セルの改行コードをまとめて消す方法

続いては、VBAマクロを活用した改行の一括削除方法を確認していきます。

大量のデータを定期的に処理する場合や、複数シートにまたがる改行削除が必要な場合には、VBAによる自動化が非常に効果的です。

VBAで改行コードを一括削除する基本コード

Excelの「開発」タブからVisual Basic Editorを開き、以下のコードを入力してみてください。

Sub 改行削除()

 Dim c As Range

 For Each c In Selection

  c.Value = Replace(c.Value, Chr(10), “”)

 Next c

End Sub

このコードは、選択中のセル範囲すべてに対してCHAR(10)の改行コードを削除するシンプルなマクロです。

Chr(10)をChr(13)に変更することで、キャリッジリターンも削除できます。

シート全体・複数シートを対象にする応用コード

シート全体の改行を一括削除したい場合は、セル範囲の指定を変更することで対応できます。

Sub シート全体の改行削除()

 Dim c As Range

 For Each c In ActiveSheet.UsedRange

  If c.Value <> “” Then

   c.Value = Replace(Replace(c.Value, Chr(10), “”), Chr(13), “”)

  End If

 Next c

End Sub

「ActiveSheet.UsedRange」を使うことで、アクティブシートのデータが入力されているすべてのセルを対象にすることが可能です。

空白セルをスキップするIf文を入れることで、処理速度も向上させることができます。

VBAが使えない環境での代替手段

会社のセキュリティポリシーなどでVBAが使えない場合は、Power QueryやGoogleスプレッドシートへの一時的な転記など、別のアプローチが有効です。

Power Queryでは「値の変換」機能を使い、改行コードをスペースや空文字に置き換えることができます。

また、Googleスプレッドシートに一時的にデータをペーストし、CLEAN関数やSUBSTITUTE関数で整形してからExcelに戻す方法も実用的な選択肢といえます。

VBAが使えなくても、目的に合わせた代替手段を組み合わせることで、改行の一括削除は十分に実現可能です。

まとめ

今回は、【Excel】エクセルの改行を削除・消す方法(一括削除・関数・置換で改行コードを消す)について詳しく解説しました。

Excelの改行削除には、「置換機能」「CLEAN関数・SUBSTITUTE関数」「VBAマクロ」の3つのアプローチがあり、それぞれ得意な場面が異なります。

素早く手動で消したいなら置換機能、数式で自動整形したいなら関数、大量データを定期処理したいならVBAが最適といえます。

改行コードはCHAR(10)またはCHAR(13)として存在するため、データの出所に応じて対処法を変えることが重要です。

今回の方法をうまく活用して、Excelのデータ整形をよりスムーズに進めてみてください。