VBAはじめたばかりですが、宜しくお願いいたします。
エクセル2000ではエラーがでませんが、2003の場合次のようなエラーがでます。

実行時エラー1004
アプリケーション定義またはオブジェクト定義エラーです

「デバック」を押して、コードをみますと、次の行に黄色いマーカーがつきます。
Sheets("TXT").SaveAs FileFormat:=xlCurrentPlatformText, Filename:=ThisWorkbook.Path & "\今月.txt"

マウスオーバーすると、次の2つが表示されます。
xlCurrentPlatformText= -4158
ThisWorkbook.Path ="C:\Document&【現在このファイルがあるパス】"

解決方法はありますでしょうか。

ご存知の方、いらっしゃいましたら、なにとぞ宜しくお願いいたします。

このマクロの実行目的は、あるエクセルファイルを加工して、最終的にテキストファイルを生成することです。
テキストファイルをつくったあと、保存するタイミングでエラーがおきるようです。

このQ&Aに関連する最新のQ&A

A 回答 (4件)

SAVEASの必須引数、2000と2003で違ってなかったですか?


VBAはバージョンによって結構引数が違ってますよ。
    • good
    • 0
この回答へのお礼

早速ありがとうございます。
バージョンが違うと引数も違うとは存じませんでした。
それをヒントに調べましたところ、無事思いとおりになりました。

本当にありがとうございました。

お礼日時:2009/05/20 17:32

こんにちは。



両方のバージョンで確認しました。ただ、Excel 2000 でも、正しくコードが書ければ、そのような問題は発生しません。しかし、一度は、教わらないと分かりません。私も、書き方の方法は、入門時に教わりました。ただ、今回のように、オブジェクトそのものの違いは、私自身、知りませんでした。マクロの書き方自身は、Excel2000も、上位バージョンも変わりません。

Help を見ると、Worksheets.Add でコピーするように書かれていますが、今回は、特例で、以下のSheet のCopyをしたら良いです。

今回は、終了方法が書かれていません。この後、ご自身で分からなければ、補足かお礼の中で、お尋ねになってください。

Sub TestSave()
 Sheets("TXT").Copy
 ActiveWorkbook.SaveAs _
    FileFormat:=xlCurrentPlatformText, _
    Filename:=ThisWorkbook.Path & "\今月.txt"
End Sub
    • good
    • 0
この回答へのお礼

具体的にコードをつけていただき、ありがとうございます。

無事解決することができました。
基本をしっかり身に着けずにつくってしまったため、
反省です。

ありがとうございました。

お礼日時:2009/05/20 17:37

直接的な解決にはならないと思いますが、


Sheets("TXT").SaveAs ~ Filename:=ThisWorkbook.Path & "\今月.txt"
↑保存するものはSheetではなくWorkBookなりじゃないでしょうか?
    • good
    • 0
この回答へのお礼

ありがとうございます。

2000ではなぜかSheetでも流れから無事に保存できていたのですが、
これはWorkBookにするべきだとわかりました。

ありがとうございます。

お礼日時:2009/05/20 17:36

引数FileFormatの値をxlTextにしてみてください。



FileFormat:=xlText
 
外しましたらご容赦願います。
 
    • good
    • 0
この回答へのお礼

ありがとうございます。

具体的に値を教えていただき、感謝いたします。

お礼日時:2009/05/20 17:34

このQ&Aに関連する人気のQ&A

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


人気Q&Aランキング