Ⅰ. はじめに
タイトルの通り「Excel VBAで任意の文字列で区切られたCSVファイルを出力する方法」です。
Ⅱ. やり方
2. 以下プログラムをコピペする
Option Explicit
Const Charset As String = "UTF-8"
Const LineSeparator As String = adCRLF
Const Area As String = "A1:D4"
Const Delimiter As String = "<>"
Const FilePath As String = "C:\out.csv"
Sub WriteCsvStringToStream(stream As Object, cells As Range)
Dim x As Range
For Each x In cells
If cells.Columns.Count = x.Column Then
Call stream.WriteText(Trim(x.Value), adWriteLine)
Else
Call stream.WriteText(Trim(x.Value) & Delimiter, adWriteChar)
End If
Next x
End Sub
Sub SaveAsCSV()
Dim stream As ADODB.stream: Set stream = New ADODB.stream
With stream
.Charset = Charset
.LineSeparator = LineSeparator
.Open
End With
Call WriteCsvStringToStream(stream, Range(Area))
Call stream.SaveToFile(FilePath, adSaveCreateOverWrite)
stream.Close
End Sub
3. SaveAsCSV を実行する
実行結果
