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

 
エクセルのシートからテキストファイルに
VBAで出力しようとしたのですが、
出力したテキストファイルは文字化けしてしまいます。
Dim ws As Worksheet
For Each ws In Worksheets
ws.SaveAs ws.Name + ".txt"
Next ws

としたのですがどこがいけないのでしょうか?
アクティブにしているエクセルのファイルのシートは、
1つだけとしています。
*Excel2002を使用しています。
お願い致します。

A 回答 (2件)

再びこんにちは。



> Excel2002だと出来ないので

それは失礼しました、こちらはExcel97です。^^;;
メソッドが変わったのでしょうかね。

Sub Test()
Dim ws As Worksheet, wb As Workbook
For Each ws In ThisWorkbook.Worksheets
 ws.Copy
 Set wb = ActiveWorkbook
 wb.SaveAs wb.Worksheets(1).Name + ".txt", xlText
Next ws
End Sub

これでダメなら、ゴメンナサイです。
    • good
    • 0
この回答へのお礼

回答ありがとうございます。
試してみたところ無事出来ました。
このコードをじっくり読んで理解したいと思います。

お礼日時:2002/07/16 22:01

こんにちは。



文字化けではなく、通常のExcelフォーマットになってます。拡張子を.xlsにすればExcelで普通に開けるハズです。

ブック内のシート数が1つならループする必要な無いと思いますが。。。

ws.SaveAs ws.Name + ".txt", FileFormat:=xlText

この回答への補足

ご早い回答ありがとうございます。
早速 ws.SaveAs ws.Name + ".txt", FileFormat:=xlText
と試してみたのですが
`SaveAs`メソッドは失敗しました。`Worksheet`オブジェクト
とエラーが出ます。
Excel2000では
ws.SaveAs ws.Name + ".txt", xlText
これで出来たのですが、Excel2002だと出来ないので
ご教授いただきたいです。
お願いいたします。

補足日時:2002/07/16 21:05
    • good
    • 0

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