dポイントプレゼントキャンペーン実施中!

エクセルファイルを通常のテキスト形式にしたいのですがタブ区切りが入ってしまうので困っています。
そこで変換時なのですがFileFormatをつかっています。
そのときxlCSVはうまくいくのですがxlTextWindowsがうまくいきません。
xlCSVから変えただけなのですが・・・
実行時エラー '1004':
'SaveAs' メソッドは失敗しました: '_Workbook' オブジェクト となってしまいます。
何がいけないのか見当がつきません。
通常のXLSからの変換です。
テキストファイルにしたとき,""カンマやダブルコーテーションが勝手に入り困っています。
何も入らないようにしたいです。

A 回答 (3件)

こんにちは。



ご質問文を読む限り、タブでもカンマ区切りでもない様ですが、では、
一体何で区切るのかという疑問があります。

桁区切りのカンマ、或いはセル内改行がある場合にダブルクウォートが
付加されるのは Excel の仕様です。

つまるところ、VBA で自力処理するのが一番手っ取り早いですよ。

ちなみに、なぜ xlTextWindows なのか良くわかりませんけど、
xlCurrentPlatformText などに変えてもダメですかね?

この回答への補足

ご回答有難うございます。
仕様なんですか・・・・
逆にテキストにした際区切るとすごい見栄えが悪いしまぁいろんなエラーの原因になるわけで・・・・
xlCurrentPlatformTextでも試してみます

補足日時:2008/08/07 06:56
    • good
    • 0

私は、エクセルファイルを通常のテキスト形式で保存する方法として次のようにしています。

参考になるかな?
BB = "\\Srv03\建物修繕履歴管理システム01\データ保管庫\データ\" & AA & ".txt"
'AAは保存するファイルの名前
Open BB For Output As #11
'#11は、単に私が11という数字が好きなだけ
E = 0
For A = 1 To 4
'Aはシート番号
For D = 1 To C
'Dは行番号
E = E + 1
'Eはテキストファイルのデータ行数(チェックを簡単にするための一工夫)
Write #11, E, Sheets(A).Cells(D, 3), Sheets(A).Cells(D, 4), Sheets(A).Cells(D, 5), Sheets(A).Cells(D, 6), _
Sheets(A).Cells(D, 7), Sheets(A).Cells(D, 8), Sheets(A).Cells(D, 9), Sheets(A).Cells(D, 10), _
Sheets(A).Cells(D, 11), Sheets(A).Cells(D, 12), Sheets(A).Cells(D, 13), Sheets(A).Cells(D, 14), _
Sheets(A).Cells(D, 15), Sheets(A).Cells(D, 16), Sheets(A).Cells(D, 17), Sheets(A).Cells(D, 18), _
Sheets(A).Cells(D, 19), Sheets(A).Cells(D, 20), Sheets(A).Cells(D, 21), Sheets(A).Cells(D, 22)
Next D
'C列からU列までデータが入っています。(空白を含め)
Next A

'C列からU列までの表示をもっとスマートにしたかったんだが。
保存速度は、エクセルファイルを変更保存する場合と同じくらいです。
    • good
    • 0

保存するファイル名のボックスにつける名称をダブルクォーテーションで囲んでもだめですか?



TEXT.TXTで保存したいなら、ファイル名に "TEXT.TXT" と記述。
    • good
    • 0

お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!