- ベストアンサー
エクセルで保存する形式としてcsvやタブ区切りがありますが、任意の文字
エクセルで保存する形式としてcsvやタブ区切りがありますが、任意の文字、例えば「#」などで区切って保存する方法はないでしょうか? マクロでできるのであればその方法をご教授ください。 よろしくお願いします。
- みんなの回答 (3)
- 専門家の回答
質問者が選んだベストアンサー
#2さんに一票。少々(大変?)くどいコードですが、無理矢理作ればこんな感じ。当方xl2000です。 Sub test() Dim targetRange As Range,myRow As Range Dim buf() As String, buf2 As String Dim i As Long Dim FSO As Object Set FSO = CreateObject("Scripting.FileSystemObject") With ActiveSheet Set targetRange = .Range(.Range("A1"), .UsedRange.Cells(.UsedRange.Rows.Count, .UsedRange.Columns.Count)) End With With FSO.createTextFile("C:\Sample.txt", True) 'overwrite For Each myRow In targetRange.Rows ReDim buf(1 To myRow.Columns.Count) For i = 1 To myRow.Columns.Count buf(i) = myRow.Cells(i).Text '.value お好みで Next i buf2 = Join(buf, "#") .writeline buf2 Next myRow .Close End With Set FSO = Nothing End Sub
その他の回答 (2)
- MackyNo1
- ベストアンサー率53% (1521/2850)
どのような目的でわざわざ「#」のような区切り文字を指定したいのかわかりませんが、どうしてもそのようなテキストファイルが作成したいなら、いったんcsvファイルを作成し、それをメモ帳で開いて、置換操作で「,」を「#」に一括置換してみてはいかがでしょう。
お礼
CSVにして,を#に変換する場合、値に100,000(""で囲われない場合)などがはいっているとおかしなことになってしまいます。 なので今まではタブを#に変換する方法でやっていました。 まわりくどいことはせずにこれが一番なのかなと思いました。 回答ありがとうございました!
- aokii
- ベストアンサー率23% (5210/22062)
例えば「#」などで区切って保存する目的が解りませんが、おそらく有りません。 どこで区切るかを決めれば出来ますが。
お礼
回答ありがとうございました!
お礼
ためしてみましたが、うまくいきました。 回答ありがとうございました!