• ベストアンサー

CSV出力で改行がうまくできない。

VBAでテキストファイルにCSV出力をおこなっています。 方法は、 Print #FreeFile, FreeFileOutput; でおこなっています。FreeFileOutputは変数でカンマで区切られた複数の値が はいっています。最後はカンマはありません。つまり、 "a,b,c,d" といった値がFreeFileOutputにはいっています。 これをループでまわして、複数行を出力したいとおもっています。 無事に出力はできるのですが、テキストファイルを見ると各行の終わりで改行 されていません。print関数を使い";"をつけると自動で改行が入力される みたいですがされません。どうしてでしょうか?

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

  • ベストアンサー
  • heinell
  • ベストアンサー率35% (420/1172)
回答No.2

気になるのでしたらvbcrlfで明示的に改行文字を入れてみるのはどうでしょう? Print #FreeFile, FreeFileOutput & vbCrlf; とか >print関数を使い";"をつけると自動で改行が入力される Excel2003のVBAのヘルプを見てたんですが ------------------------------------- 引数 outputlist は、次の形式で指定します。 [{Spc(n) | Tab[(n)]}] [expression] [charpos] (中略) charpos 次の文字の出力位置を指定します。セミコロン (;) を指定すると、次の文字は最後の文字の直後から出力されます。Tab(n) 関数で出力位置の桁番号を指定できます。Tab 関数の引数 n に何も指定しないと、出力位置は次の印字領域の先頭になります。引数 charpos を省略すると、次の文字は次の行の先頭から出力されます。 ------------------------------------- むしろ、";"を指定すると逆に改行が入力されないような感じです。 (入力されたら最後の文字の直後ではなくなる) だとすれば Print #FreeFile, FreeFileOutput の方が期待する動きになりそうです

その他の回答 (1)

  • andy_kun
  • ベストアンサー率23% (64/274)
回答No.1

>print関数を使い";"をつけると自動で改行が入力されるみたいですがされません。どうしてでしょうか? 逆です。 ;をつけると改行が出力されません。

関連するQ&A