|
▼超初心者 さん:
こんばんは。
>下記の記述でCSVに書き込みをすると、全角文字の場合は例えば、「文字,文字」となるのですが、半角文字の場合は例えば、「 1 , 2 , 3 ,」のように半角文字の左右にスペースがついてしまいます。
これは、そうなりますよ!!
半角の数字の時ですね?
数値を 例えば
Print #N, 4; 5
のようにした場合は4と5の前後に空白が埋められます。
そうしないと読み込む時に読み込めなくなってしまいますから・・・。
(この意味は考えてみてください)
まっ、仕様と解釈してください。
簡単なのはTrim関数でも付けとけばOKです。
>
> Dim myPath As String
> Dim N As Integer
> Dim j As Integer
> Dim LastRow As Long
> Dim LastColumn As Integer
>
> myPath = ThisWorkbook.Path & "C:\test.csv"
> N = FreeFile
>
> Open "C:\test.csv" For Output As #N
>
> With Worksheets("sheet1")
> LastColumn = .Cells(1, Columns.Count).End(xlToLeft).Column
Print #N, Trim(.Cells(1, 1).Value);
For j = 2 To LastColumn
Print #N, ","; Trim(.Cells(1, j).Value);
Next
> Print #N, ""
> End With
> Close #N
ですが、私はよくこういうコードを書きます。
Sub main()
Dim myPath As String
Dim N As Integer
Dim myarray As Variant
myPath = ThisWorkbook.Path & "\test.csv"
N = FreeFile
Open myPath For Output As #N
With Worksheets("sheet1")
myarray = Application.Transpose(Application.Transpose( _
.Range(.Cells(1, 1), .Cells(1, .Columns.Count).End(xlToLeft)).Value))
End With
Print #N, Join(myarray, ",")
Close #N
End Sub
|
|