エクセルVBAで固定長CSVを作成したい
各セルを順に操作し、文字列(半角のみ)の列は後ろにスペースを必要数埋め、数値の列はアポストロフィと0で埋めることで、シート上の見映えとしては固定長を実現できました。
困っているのは、それを保存するときにどうしてもコンマ区切りCSVになってしまうことです(数値の前のアポストロフィは消えている点はよかったです)。
ThisWorkbook.Activate SoukinSt.Visible = True SoukinSt.Select SoukinSt.Copy '名前を付け、ファイル形式も決めて特定の場所に保存する。 ActiveWorkbook.ActiveSheet.Range("A1").Select Application.DisplayAlerts = False ActiveWorkbook.SaveAs fileName:=fn, FileFormat:=xlCSV ActiveWorkbook.Close ThisWorkbook.Activate
このように保存しています。
現状は、手作業で、いったんコンマ区切りCSVで保存したそのファイルをメモ帳で開きコンマを""で置換して保存することで目的のファイルを得ていますが、ここまでも含めてVBAに任せたいです。
どのような方法がありえるでしょうか?
カンマ区切りをしたくないということでしょうか。
タブ区切りになりますが、
FileFormat:=xlCSV を
FileFormat:=xlCurrentPlatformText
にしてはいかがでしょうか。
ありがとうございます。
しかし、希望はカンマもタブでも区切らずただひたすら区切りのないデータが続き改行だけするテキストファイル(拡張しはcsv)なのです。
そうなると、saveasメソッドではなく、直接ファイルへ1行ずつ書き込むしかないですね。
考え方がガラッと変わります。
http://jinichiblog.com/pc/excel/post-407/
拡張子を変えてみては?
ありがとうごごいます。
できればシート上で作成し外部保存という流れでやりたいので、それが難しいようなら直接ファイルに書き込む、拡張子を変えて出力しあとで拡張子を変更、というのも考えてみたいと思います。
ありがとうございました。

回答2件
あなたの回答
tips
プレビュー