フォームに入力された値をCSV形式にするには?

解決


ako  2004-08-06 02:29:54  No: 115422  IP: [192.*.*.*]

VB初心者です。

VBで作ったフォーム内に入力した値を
コマンドボタンを押すことでCSV形式にする方法を教えてください。

また、保存する場所や名前を設定できるようにしたいです。

よろしくお願いします。

編集    削除
nanashi  2004-08-06 02:41:52  No: 115423  IP: [192.*.*.*]

> VBで作ったフォーム内に入力した値を
> コマンドボタンを押すことでCSV形式にする方法を教えてください。

CSVはカンマ区切りのテキストファイルです。
普通にテキストファイルを保存するように

1)Openステートメントでファイルを開き
2)Print#メソッドでデータを書き込み
3)Closeステートメントでファイルを閉じ

れば作れます。

> また、保存する場所や名前を設定できるようにしたいです。

コモンダイアログコントロールを使うのが手っ取り早いと思います。

編集    削除
Say  2004-08-06 02:43:19  No: 115424  IP: [192.*.*.*]

>コマンドボタンを押すことでCSV形式にする方法を教えてください。
CSVは、ただのカンマ区切りのテキストですから、
そのように組めばいいかと。

>保存する場所や名前を設定できるようにしたいです。
コモンダイアログコントロールとファイルシステムオブジェクトあたりを使って、
そのように組めばいいかと。

編集    削除
みっちー  2004-08-06 02:47:48  No: 115425  IP: [192.*.*.*]

こんにちは。

まずは、フォームにどのような形で値が入力されるかです。
data1,data2,data3
などのように入力されるのでしたら、入力された値をそのままファイルに出力すればいいですし、
それ以外の形式なら、カンマ区切りにする処理が必要になります。

保存する場所や名前を設定するようにするには、
・テキストボックスなどで、保存するパス名を入力させる
・CommonDialogを出して、保存する場所と名前を指定させる
など、いろいろなやり方があります。

次に、ファイルを保存するには、
1.ファイルのオープン(Open)
2.データの書き出し(Write)
3.ファイルのクローズ(Close)
以上の処理が必要になります。

編集    削除
ako  2004-08-06 20:16:03  No: 115426  IP: [192.*.*.*]

みなさんありがとうございます。
参考に作成してみたのですがどうもうまくいきません。
下のプログラムのどこが間違っているか教えていただけないでしょうか?


Option Explicit

'概要:各テーブルのデータをCSVファイルに書き込む
Private Sub Command1_Click()
    Dim strFileName As String
    Dim WriteData As String
    
    On Error GoTo Err_subExportFile
     
    'ファイル名の取得
    strFileName = CommonDialog1.FileName
    'ファイルのオープン
    Open strFileName For Output As #1
     
    WriteData = Text1
    Write #1, WriteData
    
    MsgBox "書き込みが正常に終了しました", vbInformation

Exit_subExportFile:
    Close #1
Exit Sub
    
Err_subExportFile:
    MsgBox "書き込みに失敗しました", vbCritical
    MsgBox "Error:" & Err.Number & Err.Description, vbCritical
    Resume Exit_subExportFile
End Sub

編集    削除
nanashi  2004-08-06 20:35:00  No: 115427  IP: [192.*.*.*]

そもそも、実際のエラーはどこで起こってどんなメッセージが出てるんでしょうか?
それが分からないとなんとも言えませんが…。

>     'ファイル名の取得
>     strFileName = CommonDialog1.FileName

これ以前の段階でコモンダイアログを使ってFileNameは取れているんでしょうか?

>     'ファイルのオープン
>     Open strFileName For Output As #1

ファイル名のパスは通ってますか?


ただ質問するだけでなく、ステップ実行などを使って変数に期待する値が入ってるか、
期待通りの動作をしてるかどうか調べることも必要です。

編集    削除
ako  2004-08-06 21:54:41  No: 115428  IP: [192.*.*.*]

いろいろ変更している間にできたようです。
nanashiさん、Sayさん、みっちーさん、どうもありがとうございました。

編集    削除