• ベストアンサー

Chr(13)とChr(10)の違いは?

myStr = Replace(myStr, Chr(13), "") や myStr = Replace(myStr, Chr(10), "") で、改行を置換しているのですが、どちらかでも改行できる時や どちらかじゃないと改行できない時があります。 そもそもChr(13)とChr(10)の違いはなんでしょう? どちらも改行ですよね? 何が違うのでしょう?

質問者が選んだベストアンサー

  • ベストアンサー
  • cj_mover
  • ベストアンサー率76% (292/381)
回答No.3

こんにちは。お邪魔します。 Chr(10) ・・・ ラインフィード ・・・ 略して、Lf Chr(13) ・・・ キャリッジリターン ・・・ 略して、Cr 改行文字に何を使うのかはアプリケーションが規定するものです。 Win・Office環境では 上のふたつを組合わせた改行[CrLf]を使うことが多いと思います。 次に[Lf]、そして、[Cr] なので、ソースによっては   myStr = Replace(myStr, vbCrLf, "") と、一発で置換できるケースも少なくないです。 ■ソースごとに改行文字を確認しておくことから始めた方が有利になります。■ ひとまず、VBAでの改行の扱いに慣れるには ■VBAで用意された文字列定数について知っておいた方がよいと思います。■  VBE(Visual Basicの編集画面)が開いている状態で、  F2 キー → オブジェクトブラウザー起動  検索小窓に、vbCrLf、とタイプして、検索ボタン  VBA.Constantsクラスのメンバーが表示され  その中にすべての改行文字(文字列定数)が含まれています。  そのまま、F1 キーでヘルプを表示します。 詳しい説明はヘルプを読む方がいいでしょう。 実践的な話として、 Chr(10)やChr(13)は関数の戻り値です。 対して、 vbLfやvbCr(またはvbCrLf)は定数です。 定数で済ませられるなら、定数の方が何かと有利です。 定数の名前は略号ですから、実態をイメージし易くなっています。 定数の扱いに慣れることをお奨めします。 例)   myStr = Replace(myStr, vbLf, "")   myStr = Replace(myStr, vbCr, "")   myStr = Replace(myStr, vbCrLf, "") もしも文字列定数を先に覚えていたなら、疑問にもならなかったのかも知れませんね。 私の場合は、改行の何たるかを覚える前に文字列定数覚えていて、困ることありませんでしたから。 以上、ご参考まで。

ukhdknazxh
質問者

お礼

ありがとうございました。

すると、全ての回答が全文表示されます。

その他の回答 (2)

  • koi1234
  • ベストアンサー率53% (1866/3459)
回答No.2

回答はついてますがキャリッジリターン(CR)とラインフィード(LF)を表すものです Windowsだけを使っている場合それほど気にしてないことが多いかと思いますが 他のOSと相互間でファイルをやり取りする際などには思い切り影響府が出ることもあります 参考 http://www.sophia-it.com/content/LF

ukhdknazxh
質問者

お礼

ありがとうございました。

すると、全ての回答が全文表示されます。
  • maiko0318
  • ベストアンサー率21% (1483/6969)
回答No.1

13は復帰、と言いまして、印字位置を1桁目に戻すことを指示しています。 10は改行、と言いまして、印字位置を1行送ることを指示しています。 10しか指示しないと、1行送られるものの、 1桁目に戻さず、その桁位置のまま次の文字を印字してしまいます。 13しか指示しないと、1桁目に戻すものの、改行しませんので重ねて印字されてしまいます。

ukhdknazxh
質問者

お礼

ありがとうございました。

すると、全ての回答が全文表示されます。

関連するQ&A