• ベストアンサー

Excel ファイルに保存すると実行時エラーになる

こんにちは。宮本と申します。VB6(SP5)で、 プログラミングをしております。 下記の様にプログラミングをしましたが、どうしても [実行時エラー’1004’ test_1.xlsにアクセスできません]と、なります。 c:\test.xls は、元々ある事を前提とし、c:\test_1.xlsに上書きをしたいのです。 宜しくお願い致します。 Dim wApp As Excel.Application Dim wExl As Object Set wApp = CreateObject("Excel.Application") Set wApp = CreateObject("Excel.Application") Set wExl = wApp.Workbooks.Open("c:\test.xls") wExl.Worksheets(1).Cells(1, 1).Value = 3000 wExl.Application.Visible = False wExl.Application.DisplayAlerts = False wExl.SaveAs "c:\test_1.xls" <---ここで、エラー

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

  • ベストアンサー
  • wan-chan
  • ベストアンサー率13% (169/1255)
回答No.6

Set wApp = Nothing wExl.Close True 最後に追加すればOKだと思います。

m-toshi
質問者

お礼

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

その他の回答 (6)

  • you111111
  • ベストアンサー率45% (20/44)
回答No.7

wExl.Closeの追加で解決ですね・・・ ちなみにCloseの前に.DisplayAlertsはTrueに戻した方がよいでしょう。 #4さんの回答について補足というかなんと言うか・・・ Sava  → 上書き保存 SaveAs → 名前をつけて保存(上書き可) です。

m-toshi
質問者

お礼

解決いたしました。ありがとうございます。 Save & SaveAs の 件も、勉強になりました。

  • todo36
  • ベストアンサー率58% (728/1234)
回答No.5

1回目にキッチリ終わっていないので、2回目にエラーになるのでは? CloseやSet Nothingをしてますか?

参考URL:
http://oshiete1.goo.ne.jp/goo_search.php3?dummy=%A5%E1%A1%BC%A5%EB&MT=&TAB=&kw=Excel.Application+%BD%AA%CE%BB&c=0
m-toshi
質問者

お礼

していませんでした。これが原因の様です。 ありがとうございました。

回答No.4

こんにちは、ats8181oyajiです ごめんなさい。説明が足りませんでした 引数が違うエラーはSaveでファイル名を書くと 出ます。Saveは今開いているファイルを上書き 保存する場合に使います。 今回の場合は test_1.xlsについては新規に一回だけ作成するのですか? ならば、テストで一回目はSaveAsで正常にできますが (当方テスト済み)二回目はエラーになります。 ようするに、正しい処理です。 しかし、何度も同じtest_1.xlsに書き込みが発生する のでしたら、上記のことを考慮する必要があります。 いつでも書き換えるのであれば 1.test_1.xlsの存在チェックで、あればkillで削除 2.SaveAsで新規名前付け保存 で可能かと思います。

m-toshi
質問者

お礼

何度も、ありがとうございました。

回答No.3

こんにちは、ats8181oyajiです SaveASとSaveの違いなのでは? SaveASは初回のみ、すでに存在するときはエラーです 二回目以後はSaveを使います。

m-toshi
質問者

補足

ご回答をありがとうございます。 >SaveASとSaveの違いなのでは? 書き換えてみました。が、今度は、 [実行時エラー'450' 引数の数が一致していません。 または、不正なプロパティを指定しています。] と、なってしまいました。(;_;) 原因は、No.1さんのおっしゃる様に他に原因が あるような気がしてきました。

  • wan-chan
  • ベストアンサー率13% (169/1255)
回答No.2

実行したところ1回目は上手く行きました。 (test.xlsのみ用意し、実行しました。) No.1さんもおっしゃるように、 test_1.xlsが使用中であることが原因のようです。

m-toshi
質問者

お礼

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

  • kmb01
  • ベストアンサー率45% (63/138)
回答No.1

VBがないのでWSHのVBScriptで試したところ、 c:\test_1.xlsが別のエクセルで開かれていることが原因のようです。 Application.VisibleをTrueにしてみて確認してください。 または、Ctrl+Alt+Delのプログラムの強制終了画面でExcelというプログラムが動いていればそれを終了すればいいかも。

m-toshi
質問者

補足

ご回答をありがとうございました。 >Application.VisibleをTrueにしてみて確認 確認しました。c:\test.xls は、読み取り専用で開かれていました。が・・・それ、以外はありません。(;_;)

関連するQ&A