Excelで文字列の連結するときに関数で改行を挿入する
Excelで文字列の連結するとき、関数で改行を挿入するケースについてのまとめ。
文字列の連結
「 ="吾輩は猫である"&CHAR(10)&"名前はまだ無い"」や「 ="吾輩は猫である"&CHAR(13)&"名前はまだ無い"」のように、計算式内で改行を扱うとき、macOSとWindowsでは、文字列の連結時の「CHAR()」のASCIIコードの値が異なる。
Windowsでは、CHAR(10) のときにセル内改行として扱われる。なお、Excel内でこれを実現するには、[折り返し]オプションをオンにする必要がある。
macOSでは、CHAR(13) のときにセル内改行として扱われる。
表にするまでもなく、逆になっている。
計算式 | 結果 | |
Mac | Windows | |
="吾輩は猫である"&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で設定。