上記の広告は1ヶ月以上更新のないブログに表示されています。
新しい記事を書く事で広告が消せます。

--.--.-- | スポンサー広告 | トラックバック(-) | コメント(-) |

先日まで動いていたVBAが、急にエラーで応答停止を起こす、という現象が先日起きて困りました☆
AccessとExcelの双方を利用したVBAなのですが、AccessからExcelを呼び出し、そのデータをコピーして、新規作成したBookにデータを貼り付け、保存する、といった内容でした。それが途中までは動くのに、最後の保存の時になって、"'Run'メソッドは失敗しました:'_Application'オブジェクト"というエラーがかかって、VBAを止めることも、Excelを落とすことも出来ずに、タスクマネージャから強制終了させるしかない、という状況になってしまったのです(ノ∀`)

原因を調査してましたら、どうやらExcelの保存形式によるエラーのようでした。
このVBAはExcel2000や2007のPCで使用するため、式の途中に以下のような判定式を入れ、Excel2000以前のバージョンで開いている時は、ファイルの形式を「Microsoft Excel 97-2000 および & 5.0/95 ブック 」で保存し、Excel2007で開いている時には、「Excel 97-2003 ブック」で保存するようにしていました。

If Application.Version < 12 Then
ActiveWorkbook.SaveAs FileName:【ファイル名】, FileFormat:=xlExcel9795
Else
ActiveWorkbook.SaveAs FileName:=【ファイル名】, FileFormat:=xlExcel8
End If

でも、この「Microsoft Excel 97-2000 および & 5.0/95 ブック 」で保存したBookを編集して上書き保存すると、環境によってはエラーが発生することもある、という内容のページをネット上でみかけたので、Excel2000形式以前のバージョンで開いたときには、ファイル形式を指定せずそのまま保存し、2007で開いた時だけ旧形式で保存するよう、式を変更しました。

まぁ、実際には、下記の部分の後ろを削除しただけなのですがw

    ActiveWorkbook.SaveAs FileName:【ファイル名】, FileFormat:=xlExcel9795
   これを、
ActiveWorkbook.SaveAs FileName:【ファイル名】
   のみに変更。

その後実行したところ、フリーズもせずきちんと動作するように。
旧形式であれば、全部に対応している方がよいか、と思って指定した記述が、余計なトラブルを招いてしまいました( ̄▽ ̄〃)

まぁ、なんにせよ解決して良かったです^^


参考URL:http://www.keep-on.com/excelyou/2000lng4/200012/00120198.txt
     http://www.excel.studio-kazu.jp/kw/20070903145442.html
スポンサーサイト

2010.06.18 | Excel | トラックバック(0) | コメント(0) |












管理者にだけ表示

トラックバックURL↓
http://cswmoon.blog12.fc2.com/tb.php/508-f90fbcc6

上記広告は1ヶ月以上更新のないブログに表示されています。新しい記事を書くことで広告を消せます。