こんにちは、五足のわらじです。

ちょっと前の話なのですが、あるWebシステムから毎日Excelに情報を転記するという作業があり、それをVBAを使って自動化しました。

数日テストして大丈夫だったので、チームのメンバーにも使ってもらったところ、15件くらい転記するとExcelがフリーズしてしまうという現象が発生してしまいました。

転記したあとに「転記済み」という操作をするとその情報はWeb上から消えてしまう仕様になっていて、その転記済み操作まで自動でやっているので、フリーズしてしまうと転記した情報が取り出せなくなってしまうんですね。

なので、フリーズしたときにはこっちまでフリーズしちゃいました(;^_^A

ただ、転記した情報は一度ボタンを押したシートに転記してから別のシートで加工するようにマクロを組んでいたため、画面に転記した情報が表示されたままフリーズしていました。

そこで、強制終了する前にスクリーンショットを取り、なんとか転記した情報を取り出すことに成功しました。

これはちょっと怖いなということで、とりあえず情報を転記する際にサーバーのDBにも同時に情報を登録するようにしました。

これでフリーズしてもサーバーのDBから情報を取れるので怖くなくなったのですが、そもそもフリーズする原因を取り除きたいので、途中で徹底的にメモリを開放したり画面の更新を停止したり、いろいろな対策を入れてみたのですが、どうしても15~20回くらい繰り返すとフリーズしてしまいお手上げ状態に。

でも何かあるはずと思ってネットでいろいろと検索してみると、どうやらVBAには十数回繰り返し処理をするとフリーズしてしまうというバグがあるようだという情報を目にしました。

いやいやいや、そもそもプログラムって繰り返し処理するためにあるようなもんでしょ、そんな言語聞いたことない・・・と思いながら、「10回に1回DoEventsを入れる」という対策をしてみたところ、無事フリーズを回避することができました。

ほんとVBAってクセがあるよなぁと思いながら、またひとつ勉強になった日でした。

著者

五足のわらじ
五足のわらじ
在宅ワークを4つと、サラリーマンを1つ、合計五足のわらじを履いて走り回ってます⇒2017年7月より在宅ワークで独立しました

在宅ワークは、アフィリエイト、アプリ制作、LINEスタンプ・着せかえ制作、ライターの4つをやっていて、サラリーマンは辞めましたが、それに替えて法人化を目指して新規事業を立ち上げ中です。

自宅では、デザイン、コーディング、プログラミング、ライティング、写真、イラスト、アニメーション、音楽、マーケティングなど、ひとりですべて行っているマルチクリエイターです。
事務所では、単純作業からマネージャー職といった包括的な業務まで、幅広い分野の受託業務を行ってます。

もともと在宅ワークは副業でしたが、収入を普通のサラリーマン並みに増加させることができたので、いまは在宅ワークと事務所での受託業務のみで生活しています。

在宅ワークはすべて独学でやってきましたので、これから独学で在宅ワークを始めようと思っている方の参考になればと思ってブログを始めました。

いいことばかりじゃなくて、辛いことや失敗したことなども正直に書いていきますので、これから始めたいと思っている人もぜひ参考にしてください!