エクセルで壊れたファイルを開く際の、VBAの処理について、 現在指定ディレクトリ内にある、指定ブックの指定シートをコピーし抽出するマクロを生成しています。
エクセルで壊れたファイルを開く際の、VBAの処理について、 現在指定ディレクトリ内にある、指定ブックの指定シートをコピーし抽出するマクロを生成しています。 --------------------------------------------------- "Excelファイル名" には読み取れない内容が含まれています。 このブックの内容を回復しますか?ブックの発行元が信頼できる場合は、「はい」をクリックしてください。 --------------------------------------------------- 手動でExcelファイルを開いた際には、上記のダイアログメッセージが表示され、 「はい」を選択すると、修復結果はどうあれファイルを開くことが可能です。 こちらのファイルをExcelのVBAより、 Workbooks.Open FileName:="ファイルパス/名", UpdateLinks:=0 上記一文で開くと、 --------------------------------------------------- 実行時エラー '1004' 'Open'メソッドは失敗しました : 'Workbooks' オブジェクト --------------------------------------------------- と、表示されております。 ▼問題点としましては、 1.壊れたブックが複数・不特定あるため、手動での回復は時間がかかる。 2.壊れるブックに対してのマクロや、処理をあらかじめ設定することは、 私が管理しているxlsxでない為、不可能です。 3.壊れたブックに対してOpenメソッドを実行することで、1004エラーでマクロが停止してしまうこと。 ▼解決策としては、 1.VBA側で壊れたブックを開く際、自動で回復に対し、「はい」を選択する処理。 2.壊れたブックを一括で選択し、回復の出来る処理、または外部ツール。 3.壊れたブックを開く際に出るダイアログを、元より「はい」選択。もしくは無視するオプション。 上記対応が私が考え付く対策でして、 可能な限り調べ、実施してみたのですが、一向に解決する気配がなく、 こちらで質問させていただきました。 過去に似た事例や、お心当たり、解決案などお持ちでしたら、 是非ご教示願いたいです。よろしくお願いいたします。
Excel・4,817閲覧・500
1人が共感しています
ベストアンサー
1.難しい 2.マイコンピュータで「.xls*」等で検索して全て保存しなおしてみるとか 3. on error resume next と書いた行以降ではエラーは全部飛ばせます
質問者からのお礼コメント
ご回答ありがとうございます。 頂いた3番を使用させていただきました。 On Error GoTo bfx Workbooks.Open FileName:=ファイルパス On Error GoTo 0 … Exit Sub bfx: Resume Next bfx~Resume Nextに壊れたブックに対する処理を施してます。 文字数の都合割愛、大変有難う御座いました。
お礼日時:2015/12/22 17:48