
18下期 VBA勉強会レポート Vol.2
1.勉強会の概要
エクセルとは、表計算アプリケーションであり、主に 機能、関数、VBA の3要素で構成されています。当講義では、その中の1要素であるマクロ機能にフォーカスを当て、学びます。業務で超簡単マクロを活用して、効率化にチャレンジしてみましょう!を合言葉に、当勉強会も第6期に突入しました。
今期も「マクロの活用のしかたを覚えて業務効率化に成功しました!」という人が1人でも多く現れてくれるよう、講師陣一丸となって頑張ります!
2.今回のテーマと内容
2-1.創立記念式典を成功させよ!
今回の1つめのテーマは、「創立記念式典を成功させよ!」です。
会社行事の中でも大きなイベントの1つである創立記念式典。その中で、ちょっとしたゲームが実施されたのですが、みなさんに楽しんでいただいた そのゲームも、実は裏でVBAが活躍!とても良い働きをしていたのです!
今回は、この実話をもとに、皆さんと共に楽しく勉強していきたいと思います。
まず、ゲームの内容と、シチュエーションの説明です。
ゲームの内容は…「チロルチョコ積み上げゲーム」!式典の参加者は約300名。30テーブルに分かれており、ゲームはテーブルごとの対抗戦です。ルールは簡単で、テーブルメンバー全員がチロルチョコを積み上げていき、崩さずに制限時間内に、何個積み上げることができるかの勝負です。上位チームは決勝戦に進むことができ、入賞チームには豪華賞品が当たります。
そして、シチュエーションは…式典の進行が遅れていたため、ゲームに割ける時間は、予定よりも短くなっていました。当然ながら、その場で各テーブルの結果を収集し、すぐに集計して成績発表を行わなければならないというものです。もちろん、手作業で行っても良いのですが…ミスも心配ですし、何より1分1秒でも早く結果を出したい状況です。
では、ここから講義&実践開始!
まずは、手作業で1回分の作業をおこないます。テーブル番号1~30までと、各テーブルが何個積み上げられたかの得点が、あらかじめエクセルに記載されています。
上位チームを決定するために、得点の高い(大きい)順にデータを並べ替えます。決勝戦に進むチームが決定したら、再び、データをテーブル番号の(小さい)順に戻します。これで1回分の作業が終了です。
さて、どうでしょう?第1回講義の時の手作業と比べたら、工程も少ないし、あっという間にできてしまいます。これなら手作業でも、十分間に合うのではないでしょうか?…と言ってしまうと講義が終わってしまいますよね。
単純作業をマクロ化することのメリットは、時間短縮だけではないのです。単純作業の繰り返しは、注意力が散漫になり、どうしてもミスが発生しやすくなりますが、作業を自動化することにより、ミスなく安全に処理を終えることができるのです。特に今回のように、限られた時間の中、周りから急かされる状況の中では、データの選択範囲を誤ってしまい、集計が正しくできていませんでした…なんてこともあるかもしれません。(実際の式典でも、入力ミスなど、想定外のハプニングがあり、マクロ化していなかったら時間内にゲームが終了できなかったかもしれない…という状況でした)
なので、今回もマクロを活用していきますよ!
それでは、作業をマクロ化していきましょう。「マクロの記録」を実行し、上記の1工程をもう一度繰り返して、その動作の1つ1つをマクロに記録していきます。1つめのマクロでは、得点の高い(大きい)順に並べ替える動作を、2つ目のマクロでは、テーブル番号の(小さい)順に並べ替える動作をマクロに記録します。
第1回講義では、ショートカットを使ってマクロを呼び出しましたが、今回は必殺の「ボタン」を活用しますよ。「得点順」「テーブル番号順」というボタンを2つ作成し、それぞれに、先程記録したマクロを割り当てるのです。
ここまでできたら、作業完了。
「さぁ!みなさん いきますよ。いっせーの せっ!」 講師の掛け声と同時にボタンを「ポチッ!」
「おおぉ!」 「わぁ!」 「へぇー!」 受講生のみなさんボタンを交互にクリックして、感動してますね。これで、データが並べ替えられることを全員が確認できました。
2-2.止めろ!追え!隠せ!
2つめのテーマは、「止めろ!追え!隠せ!」です。
止めろ!追え!については、第1回講義でも触れました。「マクロの記録」で行った動作がどのように記録されていて、どう動いているのかを、1行ずつプログラムを実行し、エクセルの画面と見比べることで、「ここはこうなっているのか」と、体感してもらいます。
ますは、プログラムの1行目に「ブレークポイント」を設定します。ブレークポイントとは、「ここで処理を一度ストップします」という目印です。
設定したら、もう一度、2-1.で作ったボタンをクリックし、マクロを呼び出してみましょう。すると、先程設定したブレークポイントの位置で、プログラムが止まりました。そのまま1行ずつ「ステップイン」を実行することで、どこでどんな処理が行われているかを確認することができます。この作業は、前回の復習のようなものなので、みなさんスムーズに出来ていて、楽しんでいますね。良い感じ!
新しい作業「隠せ!」の前に、根岸講師から皆さんに質問が。
「自分のプログラムを、他人に見せたくないな、見せるのは恥ずかしいな…って思ったりしない?」「自分がせっかく作ったプログラムを、誰かに書き換えられて、ちゃんと動かなくなったら困るよね?」
見られるのが恥ずかしいというのももちろんですが、自分が作成したプログラムを勝手に誰かに書き換えられたりするのを防ぐために、何とVBAにはプログラムを保護する機能が備わっているのです。
「マジか!」 「ほほぉ」 このみなさんの反応を見る限り、これ意外と知られていないようですね。
では、本日最後の作業、「隠せ!」をやってみましょう。VBE(ビジュアルベーシック エディター)で設定可能です。
ワクワクしながら実際に、ロックを全員で設定します。「さぁ みなさんどうですか?」「ロック来ました!」 「なるほどなぁ」 みなさん良いリアクションですね。
当たり前ですが、パスワードを忘れちゃうと、表示できなくなってしまうので、そこはご注意くださいね。
本日のミッションは、これですべて終了です。お疲れさまでした!
余談ですが、毎期、この第2回講義の時には、講師がチロルチョコを用意して、受講生の皆さんに当時の雰囲気を味わってもらうため、チロルチョコ積み上げゲームを実践してもらっています。
今回は残念ながら、教室の空きスペースがあまりなく、チロルチョコはゲームの教材ではなく、皆さんのおやつになってしまいました。
今回の1つめのテーマ、2-1. 創立記念式典を成功させよ!で、皆さんと一緒に悩み、完成した時に一緒に喜んでいるキャラクターが登場しました。そう、このキャラクターこそ、VBA勉強会のマスコット、ウサギの “うさらい” です!
うさらいは第3回以降も、お友達と一緒に色々なミッションにチャレンジしていきますので、ご期待くださいね!
3.受講者の声
アンケートの平均点は92.3点でした。受講生からはこんな感想をいただきました。
・ゆっくり講義を進めていただいたのでおいていかれることなく、受講できました。
・簡単なマクロではありますが、マクロの記録で書くことで非常に手軽に効率化できることがわかりました。
・ブレークポイントの使い方を教えてもらいましたが、コーディングが分からないときに実際動かしていけば、それで追跡できそうで役立ちそうだったから。
4.次回予告
次回は、「VBA紙芝居を完成させよ!」というテーマで、今回よりたくさんのマクロの作成にチャレンジします。また、第1回・第2回では行っていない、「ほかのシートへの処理」についても学習します。勉強会は、会を追うごとに少しずつ内容をステップアップしていくので、プログラム初心者でも安心してスキルが身につくようになりますよ。
5.今回の勉強会で伝えたい事
「今回のテーマと内容」でも触れましたが、マクロを利用して手作業を減らすことにより、作業時間を短縮するだけでなく、単純作業の繰り返し時に起こりがちな作業ミスを防ぐことが可能になります。この2つを実現させ、業務を効率化していきたいですね。
勉強会では、手作業時に要した時間と、マクロを利用した時に要した時間、それぞれを計測して、その効果を実感して貰っています。マクロの記録だけでなく、エクセルの機能をフル活用して、一緒に成果を出していきたいと思っています。
本勉強会は、メイン講師2名・補助講師3名によって構成しており、受講者からの質問や問い合わせにも手厚く対応しています。