Excelの改行がメモ帳に転送されないのはなぜですか?


31

Excelで改行を含むセルをコピーしてメモ帳に貼り付けると、テキストが1行に貼り付けられます。何故ですか?


2
こんにちは、スーパーユーザーへようこそ!質問に対するより詳細な回答を得ることができるように、可能な限り詳細を提供するようにしてください。頭の上ご自身の質問を聞いて、あなたが最良の質問をヘルプに便利なヒントのページを。これをExcel 2013とNotepad ++でテストし、正常に動作しますが、説明した問題をWindows OSに付属し、動作しない通常のNotepadアプリケーションで再現することができました。
angelofdev

クリップボードは、同じスニペットの複数のフレーバーをサポートできることに注意してください(生のテキストから、それがどこから来たのかに関する多くのメタデータまで)。どちらが一番好きかを判断するのは受信プログラム次第です。メモ帳はあまりスマートではありません。
トールビョーンラヴンアンデルセン

回答:


27

これは、スプレッドシートの機能の性質によるものです。データがいっぱいのスプレッドシートがあるとします。データの行全体をコピーしてからメモ帳に貼り付ける場合、そのデータはすべて1行である必要があります。これは、別のデータ行をコピーして貼り付ける場合、次のデータ行を1行にする必要があるためです。コピーした最初の行に改行があった場合、データは2つの線形行になくなります。データをメモ帳からコピーしてスプレッドシートに戻すと、正しく貼り付けられません。


6
この答えは間違っています。改行を使用してテキストを貼り付けた後、メモ帳を保存してください。次に、代わりにワードパッドでファイルを開きます。ただ、メモ帳の古いバージョンのバグ他の回答に正しいマークを付ける必要があります。
ザック

@Zakあなたは間違っています。これは、Excelから任意の単純なテキストエディターに貼り付ける方法です。リンクした記事はバグとは関係ありませんが、Unixのキャリッジリターンとラインフィードのサポートを追加するメモ帳に関するものです。
ケルタリ

4
@Keltari実際、いいえ、@ Zakは正しいです。何らかの理由で、Excelで改行を追加するとき(を使用Alt+Enter)、0xAのみが入力され、完全な0xD 0xA LFではなく、の代わりにが入力されCR/LFます。Excelはこれを解釈し、改行を表示しますが、プレーンなメモ帳はを予期してCR/LFいるため、改行を表示しません。バグよりも検出される形式の違いですが、それでも正しい理由です。
ChatterOne

4
@Keltari議論することは何もありません。バイナリエディターを使用して、ファイルに書かれている内容を確認します。
ChatterOne

1
@Keltari正直なところ、これらの賛成票は主に、HNQで受け入れられた回答であることの効果です。他の回答に同意する人の数を確認できます。
カペックス

45

これは、メモ帳を使用する場合に当てはまります。メモ帳は、WindowsにあらかじめインストールされているMicrosoftの基本的なテキストエディターです。

ただし、PSPadやNotepad ++(両方とも優れた、無料)などのより高度なテキストエディターを使用すると、改行が転送されます。

エクセル

エクセル

セルにマークを付けてから、Notepad ++にコピーして貼り付けます

メモ帳++

メモ帳(Windowsの既定のエディター)に貼り付けた同じコンテンツ:

WindowsNotpad

どちらの場合も、引用符が自動的に追加されたことに注意してください!

優れたエディターには、LineFeed(LF)やCarriageReturn(CR)などの制御文字を表示するオプションもあります。Notepad ++では、これは次のようになります。

Notepad ++ with controchars

結論として、ニーズに応じてツールを選択してください。エディターでセルの境界を保持する必要があるが、セルの内容が少し変更される可能性がある場合は、メモ帳を使用してください。改行を含むセルの内容をそのまま残しておく必要があり、セル境界の1:1再現性が重要でない場合は、別のエディターを使用してください。

そのようなデータの大量処理

セルの境界線とセルの内容の両方を同時に1:1で保存する必要がある場合、問題が発生する可能性があります。

よりインテリジェントなソリューションがあるかもしれませんが、そのような場合に私がしたことは、コンテンツを読み取り、改行用のプレースホルダー文字列を追加する任意の言語(VBA、Python、またはあなたが最も好きなもの)で小さなプログラムを書くことでした「### Linebreak ###」は、後でCRおよびLF制御文字で置き換えることができます。もちろん、これは手間がかかり、大量のデータを処理する必要がある場合にのみ意味があります。

追加された引用符でも問題が発生する場合があります。これらは、改行が含まれている場合でも、一見するとセルの境界を保持するのに役立つ場合があります。ただし、セルに元のコンテンツの一部が引用符で囲まれている場合、新しい問題が発生します。これにはさまざまな解決策がありますが、注意が必要です。


12
Notepad ++ CRLFが実際に表示されるのは、それが表示され、それがLFフルであるCRLFと想定され、変換されるためです。
3D1T0R

@ 3D1T0Rこれは、改行なしのキャリッジリターンが可読性を損なうためだと思います。ただし、スペース効率が高くなります。
Stian Yttervik

4
@ 3D1T0R:Notepad ++の行末設定に依存します。元のExcel形式を保持するために「バイナリペースト」することは可能ですが、これは実際にはLFのみです。
トーマスウェラー

1
これは受け入れられた答えである必要があります
ChatterOne

1
Windows 10バージョン1809でのメモ帳には、LFを改行として使用するオプションがあることに注意してください(CR-LFの代わりに)。これを使用すると、変換は行われませんが、改行は適切に表示されます。
エリックA

34

Keltari答えは論理的な推論を与えますが、この答えは技術的な違いに焦点を当てています。

コンピューティングで使用される改行には、3つの異なる形式があります。

  • UnixおよびmacOS 10.0+の行末は改行文字(LF)を使用します
  • Macintosh(macOS 10.0より前)の行末にはキャリッジリターン文字(CR)が使用されます
  • Windowsの行末は、キャリッジリターンとラインフィード文字の組み合わせを使用します(CRLF

これは、タイプライターの動作からの差し替えです。

Excelは、これらの改行の組み合わせを使用して、複数の行を持つセルを表します。

  • セルはTab文字で区切られます。
  • 行はCRLF文字で区切られます。
  • 複数行のセルは、LF文字のみを使用して各行を区切ります。

これは、ワークブックを.txtファイルとして保存し、これらの文字の表示をサポートするテキストエディターで開くと明らかになります。

エクセル

メモ帳++

メモ帳はCRLF、改行としてのみ処理し、無視するLFCR、単独で処理します。それらはまだドキュメント内にありますが、決して表示されません。

注: Notepad ++は自動的に行末を調整しますが、通常のメモ帳はそうしないので、前後に貼り付けるときにこれは表示されません。


3
また、ことを言及すべきLF であるメモ帳だけで目に見えて、それを表示しない、メモ帳に貼り付けたとき、まだ実際に存在します。したがって、貼り付けられたデータをメモ帳からExcelにコピーしてコピーすると、これらの改行が含まれる理由があります(ただし、Excelは行を自動的にサイズ変更しません)。
3D1T0R

3
これは、Excelがブックをテキストファイルにエクスポートする方法にすぎないことに注意してください。xlsxファイルの場合、文字列内の改行は実際にはで表されCRLFます。
カペックス

3
興味深いことに、「本当に」CRLF-を含むセルを構築することは完全に可能="A"&CHAR(13)&CHAR(10)&"B"です。数式によって生成された改行はExcelでは表示されませんが、コピーしてから「値の貼り付け」で貼り付けると正常に機能します。"A<CRLF>B"メモ帳で手動で入力してコピーした値を貼り付けると、CRLFも保持されます。
Random832

3
@ 3D1T0Rが正しい。テキスト「a \ nb」(「\ n」は改行を表す)を含む単一のExcelセルをメモ帳にコピーしてみてください。メモ帳に「ab」が表示されます(引用符付き)。ただし、キャレットを「a」の前に置き、キーボードの右矢印キーを3回押すと、「a」と「b」の間に目に見えないゼロ幅の文字があることがわかります。実際、Shiftキーを使用して選択し、クリップボードにコピーすることもできます!
アンドレアスレイブランド

2
@AndreasRejbrand:この手法を何度も使用して、LFEOL を含むテキストファイルをすばやく読み込めるようにしました。つまりは、検索LF文字を、それを選択し、Ctrl+ CCtrl+ HomeCtrl+ FCtrl+ VEnterEscEnter。その後、繰り返しF3Enter最後まで。[編集:<kbd>はコメントで機能しませんか?]
3D1T0R

1

ExcelはLFを使用して、セル内の新しい行を示します。Windowsは一般に改行にCRLFを使用するため、メモ帳はこれを改行と見なしません。

Notepad ++は、比較的単純なNotepadよりもインテリジェントであるため、LFも改行として解釈します。


Notepad ++は使用しませんが、好奇心からです。複数行のセルを含む少なくとも2行で構成されるExcelテーブルがあり、Notepad ++にコピーアンドペーストするとどうなりますか。
アンドレアスレイブランド

1
@AndreasRejbrand複数行のセルはラップされ"、Notepad ++はすべての行末を一致するように正規化します。こちらをご覧ください。代わりに名前を付けて保存し.txt、Notepad ++で開くと、複数行のセルLFのみになります。こちらをご覧ください
ワースウェル
弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.