エクセルマクロの挫折しない勉強法や仕事で使いこなすコツを徹底解説!
講師の寺澤さんはこれまでの20年間マクロを使って様々な業務を効率化させるなど、数多くの社内表彰を受けてきました。例えば、数十万行の元データから分析用データを毎週作成する作業。人の手だと1週間かけても終わらない作業ですが、マクロを使うと30分程で完成してしまいます。さらに自ら社内講座も主催、全くマクロを触ったことがない数百人を指導し、満足度98%と人気を博しています。近著『4時間のエクセル仕事は20秒で終わる』では、そのエッセンスを余すところなく紹介しています。
本連載では、エクセルマクロを仕事で使うための本当に必要な知識だけを、できるだけわかりやすく説明していきます。
重いマクロの処理が激変する1行
今まで学んできたマクロでは、一瞬で作業が終わっていました。しかし、膨大な量の繰り返しなどで処理が増えると、作業完了に時間がかかることがあります。
その原因は行った処理を画面に反映させる、画面表示の更新に時間がかかっているためです。今回のマクロで画面の更新を停止させれば処理が早くなります。ある程度処理の回数が多くないと効果を体感できないため、以前作成した、2500回同じ作業を繰り返し実行するマクロを利用します。
処理中の画面表示の更新を制御する
それでは実際に、処理中の画面更新を停止させて処理を早くしましょう。以下のマクロを使います。
Application.ScreenUpdating = False
マクロの冒頭にあるSubの直後にApplication.ScreenUpdating = Falseを記載すると、以後のマクロ処理中の画面更新が止まります。
完成させて動かしてみよう
保存した後にマクロを実行させてみてください。画面が「練習」シートに移動せずに処理され、完了した段階で「練習」シートに移れば成功です!
1 ApplicationやScreenUpdating、Falseの綴りが間違っている
時間削減効果はどれほど?
僕のPCで2500行の処理を比較するとScreenUpdatingなしでは11秒かかり、利用すると2.5秒になりました。
「もっと処理を多くしてみたらどうだろう?」ということで10000行の処理で比較しました。このときScreenUpdatingなしでは42秒だったのに対し、利用すると8秒とかなり差が広がりました。
繰り返し回数が多い処理の場合は、利用した方が効率がよくなりますね。
(本稿は、寺澤伸洋著『4時間のエクセル仕事は20秒で終わる』を抜粋、再構成したものです)
寺澤伸洋(てらさわ・のぶひろ)
1976年、大阪府生まれ。灘高校、東京大学経済学部卒業後、日系メーカーで17年間勤務。経理や営業、マーケティング、経営企画などに携わり、独学で覚えたエクセルマクロを用いて様々な分析や業務改革を行う。2017年、GAFAの日本法人のうちの1社へシニアマネージャー(部長)として転職。これまでエクセルマクロを用いた業務改善などで数多くの社内表彰を受けている。手作業では不可能なほど大量のデータを、短時間で分析しやすく加工したことが評価され、社内エクセルマクロ講習会の講師として延べ200人以上に講座を実施。エクセルマクロについて1から10まで教える詰め込み型の学習ではなく、仕事に必要な部分だけを効率的に学べる講座として満足度98%の高い評価を受けている。