Excel2010で作ったVBAがExcel2013以降で「インデックスが有効範囲にありません」エラー

Excel2010でCSVを読み込んで新規ブック作成するというVBAを作った時
なぜかExcel2013以降だとエラーになって動かない!とお客様に言われて
急遽調べた所、バージョン違いによるエラーとわかりました。

CSVファイルがUTF8だったからその関係で読み込みできなかったのかな?とか
そっちのほうを考えていましたが、エラー箇所をわかるように
エラー表示のメッセージにキーワードを入れたりして、エラー箇所の追跡しました。

結果

「インデックスが有効範囲にありません」

 

怪しいのは、シート削除の箇所でした。
Excel2010では新規ブック作成すると、シートが3つ作成されます。Sheet1、Sheet2、Sheet3 それを削除していたのでした。
しかしExcel2013以降は、デフォルトがシート1となっていてSheet1しか作成されません。

 

 

存在しないシートを削除しようとしたから、当然と言えば当然ですね。
 
お客様に「シート名存在チェックしてから削除するようにしましょか?」と伺ったのですが
特にその必要はなくすぐに使いたいから・・ということで、設定でやって頂く事にしました。

コメント

タイトルとURLをコピーしました