• ベストアンサー

CSVファイルの書き出し

VBAのAccessでCSVファイルへの書き出しを行っています。 Writeを使用して Write #1,1;,2;,3 のように書くと "1","2","3", となるのですが、最後の,表示したくありません。 どのように書けば "1","2","3" と書き出せるのでしょうか。

質問者が選んだベストアンサー

  • ベストアンサー
noname#22222
noname#22222
回答No.2

2つの方法を案内します。 Private Sub コマンド0_Click()   Dim N As Integer      N = FreeFile   Open "C:\Temp\Test.csv" For Output Shared As #N   Write #N, "1", "2", "3" ' セミコロンが不要!   Close #N End Sub Private Sub コマンド1_Click()   FileWrite "C:\Temp\Test.csv", """1"",""2"",""3""" End Sub どちらも、 [イミディエイトウィンドウ] ? FileReadAll("C:\Temp\Test.csv") "1","2","3" という結果を得ます。 後者は、Microsoft Scripting Runtime を参照設定する必要があります。 Public Function FileWrite(ByVal FileName As String, _              ByVal Text As String) As Boolean On Error GoTo Err_FileWrite   Dim fso As FileSystemObject   Dim txs As TextStream      Set fso = New FileSystemObject   Set txs = fso.CreateTextFile(FileName, True)   txs.Write Text   FileWrite = True Exit_FileWrite:   Exit Function Err_FileWrite:   MsgBox Err.Description & "(FileWrite)", vbExclamation, " 関数エラーメッセージ"   Resume Exit_FileWrite End Function Public Function FileReadAll(ByVal FileName As String) As String On Error GoTo Err_FileReadAll    Dim fso As FileSystemObject    Dim fil As File    Dim txs As TextStream       Set fso = New FileSystemObject    Set fil = fso.GetFile(FileName)    Set txs = fil.OpenAsTextStream(ForReading, TristateUseDefault)    FileReadAll = txs.ReadAll Exit_FileReadAll:    Exit Function Err_FileReadAll:    MsgBox Err.Description & "(FileReadAll)", vbExclamation, " 関数エラーメッセージ"    Resume Exit_FileReadAll End Function

ryo-ryo0122
質問者

お礼

お答え頂きありがとうございました。 私の書き方が間違っていたのですが、実際はパラメータを渡してループさせています。 While Rs.EOF = False For Each Fld In Rs.Fields Write #intFF2, Fld.Value; Next Write #intFF2, Rs.MoveNext Wend 実行すると、"1","2,","3", となります。 セミコロンをなくすと "1" "2" "3" となってしまいます。 右に順に書き出して改行の一つ手前のものだけ , を省きたいのですが、可能でしょうか。お願いします。

その他の回答 (1)

  • chie65536
  • ベストアンサー率41% (2512/6032)
回答No.1

関連するQ&A