
VBA勉強会レポート Vol.1
VBA勉強会は、我が社のエンジニアが直面するorしている「現場あるある」を題材とし、私が25年のキャリアで経験した「修羅場」を可能な限り再現し、その修羅場をどの様に潜り抜けて来たのか、ストーリー仕立ての講義となっています。多くの方に興味を持ってもらい、そして現場で役立てて欲しいと思いを込め、第4回VBA勉強会をレポートします。
1.今回のテーマと内容
今回のテーマは「超簡単マクロを体験しよう」です。そもそも「マクロってなんじゃ?」「マグロなら知ってる!」と言う方は少ないと思うのですが、念のためマクロを簡単に説明します。
マクロとは、コンピューターに複数・複雑な操作を記録させ、自動的に処理させる技術の総称であり、マクロはVisual Basic for Applications(VBA)で記録させます。このマクロをどの様に記録させるのか、そしてどの様に利用するのかを今回は学習(ミッションコンプリート)していこうと思います。それでは、超簡単マクロを体験するミッション(勉強会)へ出発!
1-1.むちゃぶり集計依頼に対応せよ!!テキストP2~18
今回のお題となるミッションは「集計依頼」でした。ストーリーとしては、アプリケーション開発PJにアサインされ、PJメンバーへの挨拶を終えると突然、「早速ですが直ぐにテスト結果の〇×件数を出し進捗を報告してください!」と指示を受けましたが、なんとテスト結果はExcel50ブック・500シートにも及んでいた…と言うものです。
受講者は「入場初日、しかも挨拶が終わった直後に…ある?」と疑問の表情を浮かべていましたが、これがあるのです。人的リソースが枯渇している現場では、この様に集計や資料をまとめる作業を「後回し」にする傾向があり、助っ人として入場してきた人に対応して貰いたくてウズウズ…なんて事はよくあるのです。しかも、入場初日からパフォーマンスを発揮し「おお、すごい!」と思わせる事が出来るチャンスでもあり、このチャンスをものにすれば、その後の業務や人間関係もスムーズになるビッグチャンスでもあるんです!
さて、どうやってこのミッションをコンプリートするのか、勉強会講義を覗いてみましょう。
①もし手作業で実施したら…?
まず、テスト結果のExcelを確認してみます。どの様に結果が表示され、まとめられているのかを知る事が大事。敵を知り己を知れば、百戦危うからずって事ですね!勉強会ではサンプルとなるExcelが用意されており、講師から受講者へ手動で集計を促し、「よしよし、ハンドスピードなら負けないぞ!えいっ!そりゃ!!」とみんな我こそはと取り掛かています。
もし手作業で処理したら…?の講義テキスト抜粋
単純作業ではあるものの、5シートの処理に受講者は平均1分程度必要でした。つまり、500シートある訳ですから、このまま手作業で進めると100分(1時間40分)もかかってしまい、更に、手作業でのコピー&ペーストする訳ですから、正しいかのチェックも必要です。これでは「おお!すごい!」ではなく「まだ終わらないのですか?」と言われてしまう可能性も…。
そこで、マクロを用いて効率的かつ正確に自動処理させ、依頼者を唸らせようって魂胆なのね。
②プロフェッショナルは効率化と正確さを兼ねそろえる!
「さぁ、マクロを実践してみましょう」と言う講師の言葉に、「待ってました!」と言わんばかりの受講生の目の色。どの様にマクロを登録するのか、テキストに従って手順説明が行われ、実際にマクロを登録していきます。
マクロ登録方法のテキスト抜粋
※懇切丁寧なテキストと、途中に差し込まれえている「うさぎの“うさらい”」が可愛くて好評です。そして、回を追うごとに可愛いキャラクターが増えていくんです。これを楽しみに受けている人も居るとか居ないとか。
↑この子たち。
③マクロを用いた処理の行方は…?
一通りの手順説明および操作が完了し、登録したマクロで同じ処理を計測してみました。その結果、なんと5シートに対して僅か20秒で処理が完了!つまり…20(秒)×100(シート)÷60(秒)=33.3(分)
となり、手作業で行うよりも1時間ほど早く終わり、更に!自動処理なのでコピー&ペーストミスなどもなく完成!
これこそが、プロフェッショナルの業なのだと、受講者も感激していました。
1-2.神の一手!
しかし、ここで終わらないのが、我が社の勉強会。「ここまでは一流のエンジニア。ここからが超一流のやることです!」…などとは言ってませんが、一つ先を考えて行動する「神の一手」まで講義します。
①まだまだ、この程度で、効率化は終わらせない。
神の一手のポイントは、まずMISSION7でやったように、時間をかけずにノンプログラミングで、簡単に効率化マクロを使って、しっかり成果を出した後に、余裕が出来たタイミングで行うという点なんです。「成果が出るか分からないことに時間は貰えないでしょ?逆に成果出てれば、誰も文句は言わないよね。その隙に?次のバージョンアップのための時間を稼ぐ。もっと楽するぞ!」この講師の一言に、受講生のみなさんの
目がキラキラ輝き出しました。深く頷いている方もいますね。モチベーションマックス!さぁ始めますよ。
と、その前に、MISSION7で実現した効率化の概要を振り返っておきましょう。2つのブック合わせて5シートにアクセスして、データを取りに行く・・これ面倒くさいですよね?講義では、1ブックにつき、サマリーシートを1つ追加して、そこに1ブック内の全データを関数で集約させる方法と2ブックにアクセスして一瞬で集計してくれるマクロを作れば・・・
そう!これで50ブック500シートの評価結果の集計は、MISSION7だと500シート巡回する必要があったのが、1/10の50回で済んじゃうんです。早速、みんなで一緒にマクロを作成に取り掛かります。
まずは、「マクロ記録」ボタンを押します。ここから、みんなで記録したい操作を行っていきます。成績書1ブックを選択して、「サマリー」シートの評価データをコピーしたら、
次に、集計ブックを選択して、「サマリー(全体)」シートに値の貼り付けをします。
これを、成績書2でも繰り返したら、[記録終了]でマクロの記録を終了。
ここで、自動作成されたコードを確認してみます。コードはVisual Basic(Editor)のModule1にあります。
講義では、プログラムを1行づつ(ステップ)実行させて、コードの動作を全員で確認していきます。ここでは、省略しますが、ブレーク、ステップ実行など、デバッグの仕方も講義で教えていますから安心してくださいね。
そして、赤字部分を手入力して、プログラムが完成。でも、まだ、みなさんはプログラムを通して実行していないので、なんとも半信半疑の顔つきですね。新規にボタンを作成して、このプログラムを登録して、全ての準備が完了しました!
②神の降臨 秒殺!
さぁ!いよいよ、みんなで一斉に、作成した「全体集計」ボタンを押します。「せーの!ポチッ!」すると・・ 一瞬で処理は終了!秒殺!自分で打ち込んだMsgBoxコードが動作してメッセージボックスがポップアップし、処理の完了を教えてくれました。
受講者の「おーーーーーーー!」「わぉ!」などの歓声とどよめきから、みなさんの感動が伝わってきます。
2.次回予告
次回のテーマは「開発週報の作成」です。プロジェクトの週報作成をむちゃぶりされますが、そこはプロフェッショナルの技と神の一手でミッションコンプリートを目指しましょう!乞うご期待!
3.受講者の声と評価
今回の参加人数26名、辛口の受講者アンケートでは、満足度が平均「94.7点」を獲得し、「楽しく学習する事が出来た!」「現場ですぐ使えそう!」「マクロを理解出来た!」など、多くの評価を頂きました。
また、講義後に講師の元へは「効率化出来ました!」「更なる一手を教えてください!」など、受講者が現場で活躍出来ている状況や、もっともっと向上したいと言う意欲が報告されています。
4.勉強会で伝えたい事
Microsoft製品であるExcelは、IT業界であればどの様な業務にも広く用いられており、Excelの操作一つで「パフォーマンスが高い・低い」と言われるほどです。このExcelは表計算ソフトとして「機能」「関数」「VBA」で構成されており、その中で最も効率化に用いられる「マクロ」機能を学んでもらう為に、この勉強会を開催しています。
また、マクロ機能は単に「記録」「再生」するだけでは処理が期待値に届かない事も多く、一般書籍ではマクロ機能のみでは効率化が図れず、VBAプログラミングが必要とされています。しかしながら、この勉強会ではテキストには操作手順を画像で紹介し、StepByStepの演習を行う事で確実に理解できるようにし、マクロ機能の「コツ」や「作法」をお伝えする事で、簡単かつ効率的に処理を行い、初心者でも楽しく技術を身につけられる様に工夫し、現場で活躍できる事を目指してます。
一緒にプロフェッショナルを目指して頑張りましょう!!
本勉強会は、メイン講師2名・補助講師3名(2019年10月現在)によって構成しており、受講者からの質問や問い合わせにも手厚く対応しています。ぜひ、見学に来てね!!