|
▼りん さん:
りんさん ありがとうございます!
>>タブ区切りでCSV出力をしようと思っていますが、頭文字が"0"の文字列がうまく出力することができません。
> タブ区切りはcsvとはいいませんが。
> csv : The Comma Separated Value (CSV) File Format
すいません。記述ミスです。(カンマ区切りのCSVファイルです)
>それはさておき。
> csvで保存しても0が出ない理由はよくわかりませんが、
エクセルではなくメモ帳などでひらいてみると、0がでていることを確認できました。
申し訳ありません。注意力不足でした。
!!!これに付随してエクセルで開いても頭文字"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桁の例
>などとしてください。
決めた桁数、文字列で出力したいときに上記は使えますね。
参考になります。
|
|