こんにちは、今回の記事はExcelのマクロ、VBA実行時にエラーが出た時どうしたか?という記事になります。とある日、日付の変換を行おうとFormat関数を使ったマクロを実行すると以下のエラーがでました。
悩める人
何が悪いんだ…!どうしたら?
となったので、記事にしてみます。状況によって原因等は違うと思いますが、何かの参考になれば。それでは、いってみましょう!
原因:指定した値がExcelの想定外だったため
今回エラーが出ていたコード(一部)は以下です。
で、なんかこれで大丈夫そう~と気軽な実行したのですが、冒頭に記載したように、以下のエラーがでました。
表示形式を整えたい値を「20240605」と指定したのですが、これがエラーの原因だったようです。例えば「2024/06/05」や「2024年6月5日」などであればエラーは出ないのですが、「20240605」と指定したのでエラーとなりました。
これは、「20240605」が日付ではなくシリアル値として認識されたためかと思います。
で、シリアル値の最大値は9999年12月31日で、”295846″となります。今回指定していた値が【20240605 > 2958465】となり、指定した値が最大値を超えているため換算できずにオーバーフロー(扱える上限値を超えてしまった)というエラーとなっていたようです。
さいごに
いかがだったでしょうか。同じような疑問を持たれた方の参考になれば幸いです。それではまた次の記事でお会いしましょう!