今CSVデータを書き込む処理をつくっています。
その時に、フォームのチェックボックスをチェックしたものの
キャプションをとってきて、CSV形式で保存したいのですが、
動的にカンマ区切りにする方法がわかりません。
どなたかやり方に心当たりがある方、教えてください。
よろしくお願いいたします.
Loopとカンマでできませんか?
for 〜〜〜
output = output & "," data
next
お返事ありがとうございます。
いなさんの書いていただいたコードの
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
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で書く方法が一番簡単です。
チェックのついてないものを後で考慮しないといけませんが。。。
あっちゃんさん、お返事ありがとうございます。
書いていただいたのにまことに申し訳ないんですが,
おっしゃってることが、いまいち理解できないのですが。。。
本当にすいません。
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