CSV出力のときに


ペンタくん  2004-01-23 23:59:58  No: 111584  IP: [192.*.*.*]

今CSVデータを書き込む処理をつくっています。
その時に、フォームのチェックボックスをチェックしたものの
キャプションをとってきて、CSV形式で保存したいのですが、
動的にカンマ区切りにする方法がわかりません。
どなたかやり方に心当たりがある方、教えてください。
よろしくお願いいたします.

編集    削除
いな  2004-01-24 00:02:26  No: 111585  IP: [192.*.*.*]

Loopとカンマでできませんか?

for 〜〜〜
output = output & "," data
next

編集    削除
ペンタくん  2004-01-24 00:44:42  No: 111586  IP: [192.*.*.*]

お返事ありがとうございます。
いなさんの書いていただいたコードの
outputは変数なのでしょうか?

一応自分の書いたソースをはっておきます。
こんな感じで作ったのですが。 
Dim moji As String
    Dim filename As String
    Dim mojifilename As String
    Dim chkbox As String
    Dim l As Integer
    For i = 0 To Form2.Check2.Count - 1
        If Form2.Check2(i).Value = 1 Then
            If l = 0 Then
                chkbox = "" & Form2.Check2(i).Caption & ""
            Else
                chkbox = chkbox & """" + "," + """" & Form2.Check2(i).Caption & ""
            End If
            l = l + 1
        End If
    Next i

intfileno = FreeFile()
    Open fail.csv For Output As #intfileno
    Write #intfileno, chkbox
    Close #intfileno

編集    削除
あっちゃん  2004-01-24 01:11:57  No: 111587  IP: [192.*.*.*]

Write # だと文字列は、ダブル クォーテーション ("") で囲んで出力します。
しかしそれは

dim hensu1 as string
dim hensu2 as string
dim hensu3 as integer
dim hensu4 as long
dim hensu5 as double
dim hensu6 as integer

hensu1="ABC"
hensu2="123"
hensu3=9999
〜データを格納〜

Write #intfileno,hensu1,hensu2,hensu3,hensu4,hensu5,hensu6

とした場合、ダブル クォーテーションで囲まれるのは
hensu1,hensu2だけです。

"ABC","123",9999,〜

サンプルのような場合
chkboxという変数の始めと終わりにクォーテーションがつくだけです。

動的にしたいのであれば
チェックのついたキャプションを一旦、配列(redimを使用)に格納。
チェックのついてないものも、""で処理し
全体をWriteで書く方法が一番簡単です。
チェックのついてないものを後で考慮しないといけませんが。。。

編集    削除
ペンタくん  2004-01-24 01:27:53  No: 111588  IP: [192.*.*.*]

あっちゃんさん、お返事ありがとうございます。
書いていただいたのにまことに申し訳ないんですが,
おっしゃってることが、いまいち理解できないのですが。。。
本当にすいません。

編集    削除
しゅう  2004-01-24 07:25:41  No: 111589  IP: [192.*.*.*]

Print # ステートメントのほうがシンプルだと思います。

Dim i As Integer
Dim chkbox As String
    For i = 0 To Form2.Check2.Count - 1
        If Form2.Check2(i).Value = True Then
            chkbox = chkbox & Form2.Check2(i).Caption & ","
        End If
    Next i

intfileno = FreeFile()
    Open "c:\test1.csv" For Append As #intfileno
        Print #intfileno, chkbox
    Close #intfileno

編集    削除