• ベストアンサー

エクセルで保存する形式としてcsvやタブ区切りがありますが、任意の文字

エクセルで保存する形式としてcsvやタブ区切りがありますが、任意の文字、例えば「#」などで区切って保存する方法はないでしょうか? マクロでできるのであればその方法をご教授ください。 よろしくお願いします。

質問者が選んだベストアンサー

  • ベストアンサー
  • mitarashi
  • ベストアンサー率59% (574/965)
回答No.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

hacker_001
質問者

お礼

ためしてみましたが、うまくいきました。 回答ありがとうございました!

その他の回答 (2)

  • MackyNo1
  • ベストアンサー率53% (1521/2850)
回答No.2

どのような目的でわざわざ「#」のような区切り文字を指定したいのかわかりませんが、どうしてもそのようなテキストファイルが作成したいなら、いったんcsvファイルを作成し、それをメモ帳で開いて、置換操作で「,」を「#」に一括置換してみてはいかがでしょう。

hacker_001
質問者

お礼

CSVにして,を#に変換する場合、値に100,000(""で囲われない場合)などがはいっているとおかしなことになってしまいます。 なので今まではタブを#に変換する方法でやっていました。 まわりくどいことはせずにこれが一番なのかなと思いました。 回答ありがとうございました!

  • aokii
  • ベストアンサー率23% (5210/22062)
回答No.1

例えば「#」などで区切って保存する目的が解りませんが、おそらく有りません。 どこで区切るかを決めれば出来ますが。

hacker_001
質問者

お礼

回答ありがとうございました!

関連するQ&A