|
jin さん、おはようございます。
>タブ区切りでCSV出力をしようと思っていますが、頭文字が"0"の文字列がうまく出力することができません。
タブ区切りはcsvとはいいませんが。
csv : The Comma Separated Value (CSV) File Format
それはさておき。
csvで保存しても0が出ない理由はよくわかりませんが、VBAで実行するのならば、csvで保存をするよりも、OpenステートメントとPrint # ステートメントを使えば区切り文字などが結構自由がききますよ。
Sub test()
Dim r1 As Range, RR(0 To 2) As Long, CC(0 To 2) As Integer
Set r1 = ActiveSheet.UsedRange
With r1
RR(1) = .Cells(1).Row
CC(1) = .Cells(1).Column
RR(2) = .Cells(.Count).Row
CC(2) = .Cells(.Count).Column
End With
'csv風のテキストを作成
Open "TabSep.csv" For Output As #2
With r1.Parent
For RR(0) = RR(1) To RR(2)
For CC(0) = CC(1) To CC(2)
'セルの値
With .Cells(RR(0), CC(0))
If .Value = "" Then
Print #2, "";
ElseIf IsNumeric(.Value) = False Then
Print #2, .Value;
Else
Print #2, "0" & Trim(.Value);
End If
End With
Select Case CC(0)
Case CC(2): Print #2, "" 'vbcrlf
Case Else: Print #2, Chr(9); 'vbTab
End Select
Next
Next
End With
Close #2
Erase CC,RR
Set r1 = Nothing
End Sub
こんな感じです。
0を付けたいの意味がわからなかったので、数値の前に0を追加するようにしましたが、
1 → 0001 などの様に成型したい場合は、
書き出す分岐の数値と判定された部分(Ifブロックの一番下)を、
Print #2, Format(.Value, "0000"); '4桁の例
などとしてください。
|
|