VBのtextに入力された文字をExcelに出力したいのですが、どうしても同じセルに書き込んでしまいます。どなたかセルを1つずつ表示させる形式で出力できる方法をご存じないでしょうか?
編集 削除現在Excelにはどのように書き込んでいるのでしょうか?
ソースを掲示されてる方が回答しやすいんですが。
えっと、以下のようにプログラムしています。
Private Sub Command1_Click()
Dim sei(50) As Integer
Dim jidai(20), toti(20), koto(20), hito(20) As String
Open "C:\hyou\his.csv" For Output As #1
i = i + 1
jidai(i) = Text1
sei(i) = Text2
toti(i) = Text3
koto(i) = Text4
hito(i) = Text5
Print #1, jidai(i), ",", sei(i), ",", toti(i), ","
,koto(i), ",", hito(i)
Close #1
End Sub
どこから突っ込んでイイやら……f^_^;
まず、これはExcel形式ではなくCSV形式(カンマ区切りのテキストファイル)です。
> Dim jidai(20), toti(20), koto(20), hito(20) As String
これはhito()以外は全てVariant型の配列になってます。
> jidai(i) = Text1
省略するのはバグの元になります。
jidai(i) = Text1.Text
とした方が良いです。
> Print #1, jidai(i), ",", sei(i), ",", toti(i), ",",koto(i), ",", hito(i)
カンマで区切ると無駄なスペースが入ります。
Print #1, jidai(i) & "," & CStr(sei(i)) & "," & toti(i) & "," & koto(i) & "," & hito(i)
変数iはどこで指定しているのでしょうか?
まァ、どこで指定していたとしてもこのプロシージャ内での
> Dim sei(50) As Integer
> Dim jidai(20), toti(20), koto(20), hito(20) As String
この宣言自体、配列にしている意味が全くありませんが……。
で、質問の同じセルに書き込むと言うのは、
> Open "C:\hyou\his.csv" For Output As #1
ここでテキストファイルを上書きしているからです。
テキストファイルに追加するなら
Open "C:\hyou\his.csv" For Append As #1
として下さい。
わかりました。nanashiさんアドバイスありがとうございました。
編集 削除