- ベストアンサー
CSVファイルの書き出し
VBAのAccessでCSVファイルへの書き出しを行っています。 Writeを使用して Write #1,1;,2;,3 のように書くと "1","2","3", となるのですが、最後の,表示したくありません。 どのように書けば "1","2","3" と書き出せるのでしょうか。
- みんなの回答 (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
その他の回答 (1)
- chie65536
- ベストアンサー率41% (2512/6032)
お礼
お答え頂きありがとうございました。 私の書き方が間違っていたのですが、実際はパラメータを渡してループさせています。 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" となってしまいます。 右に順に書き出して改行の一つ手前のものだけ , を省きたいのですが、可能でしょうか。お願いします。