print #1,”文字列”
のように書くよりほか方法はないでしょうか。ヒアドキュメントなどはないのでしょうか。
よろしくお願いいたします。
Yahoo! JAPAN
ヒアドキュメントのような形式は聞いたことがないですね。
CRLF=chr(13)+chr(10)
print #1,”1行目”&CRLF&”2行目”&CRLF&”3行目”&CRLF&”4行目”
ではだめでしょうか?
(たしか、vb_crlfみたいな既存のがあったような気もしますが。
http://www.bcap.co.jp/hanafusa/VBHLP/FSO01.htm
FileSystemObject オブジェクトについて
FileSystemObjectが使える環境であればOpenやPrintを使ってファイルを書き込むよりTextStreamオブジェクトを使う方がスマートです。
「プロジェクト」→「参照設定」でMicrosoft Scripting Runtimeにチェックを入れる必要があります。
ファイルを開いてhelloと書き込むには以下のようにします。
Dim fs As New FileSystemObject
Dim ts As TextStream
Set ts = fs.OpenTextFile(AppPath & ”test.txt”, ForWriting)
ts.WriteLine (”hello”)
ts.Close
Set ts = Nothing
Set fs = Nothing
http://support.microsoft.com/default.aspx?scid=kb;ja;186118
Visual Basic で FileSystemObject を使用する方法
http://www.asahi-net.or.jp/~ef2o-inue/vba_o/sub05_110_040.html
VBA応用(テキストデータの書き出し)
VBAでの例ですが、Open・Printを使ったファイル読み書きとFileSystemObject・TextStreamを使ったファイル読み書きの比較です。
ありがとうございます。
URLはダミーです。
はずしてたらごめんなさい
こういう風に出力したい文字列を
vbcrlf で区切ってあげれば
1回のPrintメソッドで出力できますが。
Private Sub CommandButton1_Click()
Open ”C:¥TEST.TXT” For Output As #1
Print #1, ”AAA” & vbCrLf & ”BBB”
Close #1
End Sub
一番最初に回答をくださった方と同じ考えかたでしょうか。やはりこのような方法が一般的なのですね。
もし、大量の行を出力する場合、& を使えば使うほど遅くなります。
ループ処理でvbCRLFの連結は危険です。
printを一行ごとに書いた方が高速です。
MID関数を使って文字列を連結する手法を用いれば、一回のprintでも大丈夫ですが。
ケースによっては100倍ぐらいスピードが変わります。
迅速な回答ありがとうございません。
できれば1行ごとに&CRLF&をいれたくないです。結局print ”1行目” print ”2行目”とあまりかわらないように思えてしまうので