Excel VBAで「エラー 1004 WorkbooksオブジェクトのOpenメソッドに失敗しました」に関する原因の一例

概要

VBAでよく遭遇する「エラー 1004 WorkbooksオブジェクトのOpenメソッドに失敗しました」というエラーで自分が解決出来た原因について記す。

原因

このエラーが出る場合、十中八九特定のBookを開いてその中のWorksheetオブジェクトを取得しようとしていることが想定される。
  • 取得しようとしているWorksheetの名前が間違っている
    • Set Sheet =  BookObject.Open("ファイルパス").Worksheet("シート名)となっているところのシート名が間違っている。
    • Book名が間違っている(パスが違う)場合は、ファイルが存在しませんというエラーになるので、今回のエラーには該当しない
  • 開こうとしてるBookに制御できない警告が出て、開けない
    • この原因の場合嵌まる可能性大
    • Excel.Application等でファイルを開かずに値を取得しようとしていて、デバック作業中にエラーで落ちると、次回開くときに「前回重大なエラーが発生しましたが開きますか?」という警告が出る。
      • この警告は手動で開いてる時は出ず、VBAなどで開くときに出るエラーなので、原因究明の難しさの一因になっている
    • 対処方としては、一度Workbooks.Openで一度VBA経由で対象ファイルを表示させ、出てきた警告に「はい」を選択して警告が出ないようにする(この時対象ファイルが開かなくてもOK)

0 件のコメント :

コメントを投稿