- ベストアンサー
Excelへのテキストデータの取り込み方法と注意点
- VB2005でテキストファイルを作成し、それをExcelに取り込む方法について説明します。
- テキストデータをExcelに取り込む際、改行文字の扱いに注意が必要です。
- ファイルの中身を確認すると1行おきになっているのに、Excelのデータ→外部データの取り込みでテキストデータウィザードを見るとすでに2行おきになっています。1行おきに作成した文字列ファイルを1行おきに取り込むにはどうしたらいいのか、解決策をご教示ください。
- みんなの回答 (3)
- 専門家の回答
質問者が選んだベストアンサー
こんばんは。Wendy02です。 もともと、PrintLineは、CrLf が含まれています。 >PrintLine(1,chr(13)) このようにしますと、メモ帳で開けると、片割れだけでは、改行コード(CrLf)になりませんので、改行は一つです。テキストエディタでははっきり区別が付くのですが、中身は、「CrCrLf」という状態になっています。ですから、以下のようにしてあげれば、直るはずです。 Const FNAME As String = "C:\" FileOpen(1, FNAME & "TestOutPut.txt", OpenMode.Output) PrintLine(1, "12345") PrintLine(1) PrintLine(1, "67890") FileClose(1) End Sub なお、テキストエディタは、ひとつお持ちになって利用なされると良いと思います。 これは、隠れた名品のひとつで、sakura editor といいます。大勢の方が、知恵を寄せ合って作ったもので、他のエディタとは、製作スタイルがまるで違います。 http://sakura-editor.sourceforge.net/
その他の回答 (2)
- Wendy02
- ベストアンサー率57% (3570/6232)
こんばんは。 今、再現性があるか試してみました。 Win の標準改行コードは、「CrLf」です。そこで、テキストエディタで、「Cr」のみ、「Lf」のみのテキストファイルで作って、インポートを、Excelのテキストデータウィザードで行ってみましたが、そのような現象が起こりません。 VB2005で、どのように出力されているのかは分かりませんが、どこかで二重になっていないでしょうか? Chr$ というのは、.Net では書かないような気がしますね。ControlChars を使ってはいないのでしょうか? メモ帳では分からないかもしれませんが、テキストエディタなら判別が付くかもしれません。
補足
ご回答ありがとうございます。出力は PrintLine(1,"12345") PrintLine(1,chr(13)) PrintLine(1,"67890") のように行なっています。 「Cr」のみ、または「Lf」のみを付加することはできるのでしょうか?
- usami33
- ベストアンサー率36% (808/2210)
たぶんLF(chr$(10))が付加されているんだと思いますよ。
お礼
ご回答ありがとうございます。 確認する方法はありますか? メモ帳のテキストファイルをVBのlineInputなんかで読むと CRやLFはなくなってしまうんですよね?
お礼
完璧です。m(_ _)m