セル内の改行を削除する


セル内で改行するときは、改行したい位置で、Altキーを押しながらEnterキーを押します。

この改行を削除して1行のデータにしたいときは、セルを編集状態にして、改行されているところでBackSpaceキーやDeleteキーを押します。つまり、(目に見えない)改行コードを削除してやればいいです。しかし、複数のセルでこの操作を繰り返すのは、決して楽しい作業ではありませんね。もちろん、マクロを使えば、複数のセルから改行コードを一瞬で削除できますけど、ここではマクロを使わない方法をいくつかご紹介します。

間違ったやり方

その前に、間違ったやり方です。こうやってはダメですよ・・・という例です。実は、セル内で改行したセルでは、自動的に[折り返して全体を表示する]オプションがオンになります。

そこで、このオプションをオフにすれば改行されなくなるのではないでしょうか。実際にやってみましょう。

確かにワークシート上では改行されなくなりました。しかし、数式バーに注目してください。この[折り返して全体を表示する]オプションは、もともと改行を含むデータとは関係のないオプションです。現在の列幅よりも大きい文字列を入力した場合、標準では右隣のセルにはみ出してしまいますが、これを解消するためのオプションが[折り返して全体を表示する]です。ワークシート上では、確かに1行で表示されていますが、数式バーを見てわかるように、実際には改行コードが残されています。ちなみに、Excelを教えるスクールなどで「このオプションをオフにすると改行が削除される」と教えることもあるそうです。改行されている場所には目に見えない改行コードが入力されているということと、オプション本来の意味を取り違えた悪い例ですね。

ワークシート関数で改行を削除する

まず、ワークシート関数で改行を削除するやり方です。セル内で改行されている位置には、目に見えない改行コード(制御文字)が入力されています。こうした制御文字を除去してくれるのが、CLEAN関数です。

CLEAN関数で改行コードを除去できますが、CLEAN関数を入力したセルでは、計算式の結果が表示されているに過ぎません。改行コードを削除したデータを確定したいのなら、CLEAN関数を入力したセルをコピーして、[形式を選択して貼り付け]などで値だけを貼り付けてください。

置換機能で改行を削除する

Excelの置換機能は、指定した文字列を、別の文字列に置き換える機能です。たとえば、"田中"を"鈴木"に置き換えるとか。では、"田中"を""(空欄)に置き換えたらどうでしょう。これはつまり、"田中"を削除するということですね。セル内で改行されているデータというのは、改行されている位置に目に見えない改行コードという文字が入力されています。

この改行コードを、置換機能で、""(空欄)に置き換えてしまえば、結果的に改行を削除できますね。それでは、さっそくやってみましょう。

ん?ちょっと待ってください。[検索する文字列]ボックスに、何を指定すればいいのでしょう。ここでAlt+Enterキーを押しても、それは改行コードを指定したことにはなりません。Alt+Enterキーで改行コードが入力されるのは、セル内だけです。これは、いくら考えても、知らないと思いつかないでしょう。[検索する文字列]ボックスに改行コードを指定するには、ボックスの中でCtrl+Jキーを押します。

上図は、Ctrl+Jキーで改行コードを指定したところです。何も見えませんか?よーく見てください。違いがわかりませんか?わかりませんよね。だって、Ctrl+Jキーで改行コードを入力しても、ボックス内には何も表示されないのですから。Ctrl+Jキーで入力された改行コードは、画面に表示されません。表示されませんけど、確かに改行コードが指定されています。[置換後の文字列]ボックスを空欄のまま[すべて置換]ボタンをクリックしてみましょう。

Ctrl+Jキーで入力する改行コードは画面に表示されませんので、上記の操作がうまくいかないときは、[検索する文字列]ボックスに注意してください。[検索と置換]ダイアログボックスは、前回指定した文字列が次回にも残っています。前回、Ctrl+Jキーで改行コードを検索・置換していると、[検索と置換]ダイアログボックスを開いた時点で、すでに[検索する文字列]ボックスにはCtrl+Jキーの改行コードが入力されています。それに気づかず(って、見えないのですから、それもやむを得ませんけど)、もう一度Ctrl+Jキーを押すと、結果的に[検索する文字列]ボックスには、改行コードが2つ入ってしまいます。そのまま検索や置換を行うと「改行+改行」を探すことになります。

なぜ改行コードがCtrl+Jなのか

なぜ、[検索する文字列]ボックスでCtrl+Jキーを押すと、それは改行コードとして認識されるのでしょう。Ctrl+Jキーが改行コードを表すのなら、なぜセル内でCtrl+Jキーを押して改行を挿入できないのでしょう。このへんの事情を話すと、すごく長くなります。そもそも、昔々のコンピュータでは・・・という話になります。今北産業で言うなら

  • コンピュータの世界では、大昔から16進の0Dや0Aが改行コードとして使われていた
  • もともとCtrlキーは、こうした制御コードを入力するためのキーだった
  • 今のExcelでも、その機能が残っていて、随所でCtrl+Jキーにより改行コードを入力できる ←今ココ

みたいな感じです。

Excelで、Ctrl+Jキーを押して改行コードが入力できるのは、[検索する文字列]ボックスだけではありません。たとえば、セルの表示形式でも指定できますし、シート名にCtrl+Jキーで改行を挿入することも可能です。もっとも、途中で改行したシート名は、シート見出しでは何も変わりません。そのシート名をヘッダーやフッターに指定すると、シート名が改行されて印刷されます。

まぁ、難しいことはともかく、Ctrl+Jキーでセル内の改行コードを検索したり、削除することができると。それだけ覚えておいてください。ちなみに、Windowsに標準添付されている「メモ帳」でも、Ctrl+Jキーを押すと改行されます。Ctrl+Jキーが改行コードを表すというのは、Excel固有の機能ではなく、Windows(OS)レベルでの一般機能だということです。

なお、もう少し"改行コード"に関して知りたいという方は、下の動画をご覧ください。改行コードとは何か?ExcelやVBAなどではどう扱うか?などを詳しく解説しています。