スプレッドシートをダウンロードしてEXCELに変換した際に「問題が見つかりました」とエラーが出た場合の対処
スプレッドシートをダウンロードするとEXCELに変換してくれます。 2016年7月まで問題ありませんでしたが2016年8月からなぜか下記のようなエラーが出てきまして、変換されたEXCELファイルを修復しないと開けなくなってしましました。
なぜ
手探りで調べたところ、どうやら以下の条件を満たすセルが1つでもあるとエラーが出るようです。
- 関数式が入っている
- 書式が日付である。※日時は除く
私はTODAY()を使っていたのでアウトでした。あと、日別の表で日付をA1+1のように記述していたのでそこも引っかかりました。
回避
原因は深く追っていないので不明ですが、関数式を固定値に変えたり書式を「数値」や「日時」に変えたりすることでエラーが出なくなることを確認しております。 また、煩わしくなければダイアログで「はい」を選択して自動的に回復してもらってもよいかなと。
私の場合は50以上のスプレッドシートをダウンロードしてEXCELのVBAでファイルをそれぞれ開いていたので、スプレッドシートの変更は数が多く躊躇しました。 そこでスプレッドシートを修正するのではなく、EXCEL変換後のファイルを修復して開くようにVBAを変更しました。
Private Function Sample() As Workbook On Error GoTo ErrHandler Set Sample= Workbooks.Open(fileName:"fileName") Exit Function ErrHandler: Set Sample= Workbooks.Open(fileName:"fileName", CorruptLoad:=xlRepairFile) End Function