VBからExcelに出力するには??

解決


uky  2004-06-29 10:52:16  No: 84265  IP: [192.*.*.*]

VBのtextに入力された文字をExcelに出力したいのですが、どうしても同じセルに書き込んでしまいます。どなたかセルを1つずつ表示させる形式で出力できる方法をご存じないでしょうか?

編集 削除
nanashi  2004-06-29 10:56:05  No: 84266  IP: [192.*.*.*]

現在Excelにはどのように書き込んでいるのでしょうか?
ソースを掲示されてる方が回答しやすいんですが。

編集 削除
uky  2004-06-29 11:02:52  No: 84267  IP: [192.*.*.*]

えっと、以下のようにプログラムしています。

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

編集 削除
nanashi  2004-06-29 11:32:12  No: 84268  IP: [192.*.*.*]

どこから突っ込んでイイやら……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

として下さい。

編集 削除
uky  2004-06-29 11:43:40  No: 84269  IP: [192.*.*.*]

わかりました。nanashiさんアドバイスありがとうございました。

編集 削除