Excelで文字列の連結するときに関数で改行を挿入する

この記事は鷹野雅弘によって執筆されました。
公開日:2017年4月28日、更新日:2017年4月29日
 

Excelで文字列の連結するとき、関数で改行を挿入するケースについてのまとめ。

文字列の連結

「 ="吾輩は猫である"&CHAR(10)&"名前はまだ無い"」や「 ="吾輩は猫である"&CHAR(13)&"名前はまだ無い"」のように、計算式内で改行を扱うとき、macOSとWindowsでは、文字列の連結時の「CHAR()」のASCIIコードの値が異なる。

Windowsでは、CHAR(10) のときにセル内改行として扱われる。なお、Excel内でこれを実現するには、[折り返し]オプションをオンにする必要がある。

macOSでは、CHAR(13) のときにセル内改行として扱われる。

表にするまでもなく、逆になっている。

計算式結果 
MacWindows
 ="吾輩は猫である"&CHAR(10)&"名前はまだ無い"吾輩は猫である 名前はまだ無い吾輩は猫である
名前はまだ無い
 ="吾輩は猫である"&CHAR(13)&"名前はまだ無い"吾輩は猫である
名前はまだ無い
吾輩は猫である 名前はまだ無い

10や13の数字は「ASCIIコード」の値。

  • CHAR(10) → LF
  • CHAR(13) → CR

ExcelからIllustratorへのペースト(macOS)

Illustratorドキュメント内でペーストすると、CHAR(10)は、改行されずにスペースで連結、CHAR(13)は行ごとに分断される。

二重引用符は付かない。

一方、「エリア内テキスト」内にペーストすると、CHAR(10)、CHAR(13)ともに、改行として扱われる。また、セル単位で二重引用符が付く。

ExcelからInDesignへのペースト(macOS)

InDesignのドキュメント内でペーストすると、CHAR(10)は、強制改行、CHAR(13)は改行として扱われる。セル単位で二重引用符が付く。

フレーム内にペーストしても同様。

ExcelからJedit Xへのペースト

Jedit Xにペーストすると、CHAR(10)、CHAR(13)ともに、改行として扱われる。

セル単位で二重引用符が残る。

二重引用符の扱い

改行として扱われずに分断されてしまうIllustratorを除き、いずれのケースも、セル単位で二重引用符が付いてしまう。

検索すると、共通する悩みとして出てくるが、ペースト後に一括置換する、というものばかりで、コレというものはない。

とりあえず、ClipMenuのスクリプトで次のように書くことでペースト時に自動削除。

return clipText.replace(/\"/g, '');

または、TextScrubで設定。

参考

YouTube

DTP TransitのYouTubeチャンネルです。1分前後のクイックTipsを投稿しています。

チャンネル登録

Twitter

本サイトの記事以外に、小ネタやタイムリーな話題などをツイートしています。

マンスリーでまとめています。

このページの上部に戻る