エクセルマクロの挫折しない勉強法や仕事で使いこなすコツを徹底解説!
講師の寺澤さんはこれまでの20年間マクロを使って様々な業務を効率化させるなど、数多くの社内表彰を受けてきました。例えば、数十万行の元データから分析用データを毎週作成する作業。人の手だと1週間かけても終わらない作業ですが、マクロを使うと30分程で完成してしまいます。さらに自ら社内講座も主催、全くマクロを触ったことがない数百人を指導し、満足度98%と人気を博しています。近著『4時間のエクセル仕事は20秒で終わる』では、そのエッセンスを余すところなく紹介しています。
本連載では、エクセルマクロを仕事で使うための本当に必要な知識だけを、できるだけわかりやすく説明していきます。

「マクロの記録」派でも効果抜群! たった1行で重いマクロが激変する方法Photo: Adobe Stock

重いマクロの処理が激変する1行

今まで学んできたマクロでは、一瞬で作業が終わっていました。しかし、膨大な量の繰り返しなどで処理が増えると、作業完了に時間がかかることがあります。

その原因は行った処理を画面に反映させる、画面表示の更新に時間がかかっているためです。今回のマクロで画面の更新を停止させれば処理が早くなります。ある程度処理の回数が多くないと効果を体感できないため、以前作成した、2500回同じ作業を繰り返し実行するマクロを利用します。

処理中の画面表示の更新を制御する

それでは実際に、処理中の画面更新を停止させて処理を早くしましょう。以下のマクロを使います。

Application.ScreenUpdating = False

マクロの冒頭にあるSubの直後にApplication.ScreenUpdating = Falseを記載すると、以後のマクロ処理中の画面更新が止まります。

「マクロの記録」派でも効果抜群! たった1行で重いマクロが激変する方法

完成させて動かしてみよう

保存した後にマクロを実行させてみてください。画面が「練習」シートに移動せずに処理され、完了した段階で「練習」シートに移れば成功です!

エラーが出たらチェック! よくある間違い

1 ApplicationやScreenUpdating、Falseの綴りが間違っている

時間削減効果はどれほど?

僕のPCで2500行の処理を比較するとScreenUpdatingなしでは11秒かかり、利用すると2.5秒になりました。

「もっと処理を多くしてみたらどうだろう?」ということで10000行の処理で比較しました。このときScreenUpdatingなしでは42秒だったのに対し、利用すると8秒とかなり差が広がりました。

繰り返し回数が多い処理の場合は、利用した方が効率がよくなりますね。

(本稿は、寺澤伸洋著『4時間のエクセル仕事は20秒で終わる』を抜粋、再構成したものです)