• ベストアンサー

VBのファイル処理について

Dim a(10) as integer と宣言して、aの配列には0~10の値が入っています。 open "test.dat" for output as #1 でファイルに一行で書き込みたいのですが、 write #1,a(0),a(1),a(2) ・・・ のように一つづつ書くしかないのでしょうか? for i=1 to 10 write #1,a(i) というようなループをかけると、 1 2 3 4 のように縦に表示されてしまいます。 もし有効な解決法をおもちでしたらよろしくお願いいたします。

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

  • ベストアンサー
  • imogasi
  • ベストアンサー率27% (4737/17069)
回答No.2

Sub test01() Dim a(10) As String Open "test.dat" For Output As #1 a(1) = "a": a(2) = "b": a(3) = "c" For i = 1 To 2 Write #1, a(i), Next i Write #1, a(i) Close #1 End Sub とすると上手く行くようなんですが。 aを文字列にし、配列要素数を3にした例です。 "a","b","c" になりました。

w99329
質問者

お礼

ありがとうございます。皆さんの意見を総合して何とかできるようになりました。

その他の回答 (3)

  • taka_tetsu
  • ベストアンサー率65% (1020/1553)
回答No.4

最初から1行にしてしまってから書き込むとか。 for i=1 to 10 str = str & a(i) Next write #1, str

w99329
質問者

お礼

ありがとうございます。皆さんの意見を総合して何とかできるようになりました。

  • Azzuri
  • ベストアンサー率68% (34/50)
回答No.3

Dim a(10) As Integer Dim i As Integer For i = LBound(a) To UBound(a) a(i) = i Next i Open "test.dat" For Output As #1 For i = LBound(a) To UBound(a) Print #1, CStr(a(i)); Next i Close #1 上記の例ではどうでしょうか。

w99329
質問者

お礼

ありがとうございます。皆さんの意見を総合して何とかできるようになりました。

  • neKo_deux
  • ベストアンサー率44% (5541/12319)
回答No.1

Print # ステートメントを使用して、 for i=1 to 10 print #1,a(i); と、 ExcelVBAヘルプより -----以下引用----- Print #filenumber, [outputlist] 引数 outputlist は、次の形式で指定します。 [{Spc(n) | Tab[(n)]}] [expression] [charpos] charpos 次の文字の出力位置を指定します。セミコロン (;) を指定すると、次の文字は最後の文字の直後から出力されます。 -----以上引用----- の[charpos]に(;)を指定すると、前の文字に続けて出力されたハズです。

w99329
質問者

お礼

ありがとうございます。皆さんの意見を総合して何とかできるようになりました。

関連するQ&A