VBA勉強会レポートVol.6

benkyokai


1.今回のテーマと内容

今回のテーマは、前回に引き続き「超簡単マクロを体験しよう」です。
マクロとは、コンピューターに複数・複雑な操作を記録させ、自動的に処理させる技術の総称であり、マクロはVisual Basic for Applications(VBA)で記録させます。このマクロをどの様に記録させるのか、そしてどの様に活用するのかを今回も
学習(ミッションコンプリート)していこうと思います。さぁ!スタートです。

1.1 適材適所 エクセルは機能と関数とマクロを組み合わせて使いきれ!

全6回の講義もいよいよ最終回です。今まで、マクロ機能VBA言語を中心に進められてきた当勉強会ですが、
どうせなら、エクセルの機能をフルに使って、上手に、そして効率良く作業を完遂したいですよね?
エクセルの主な3大要素「機能」「関数」「VBA」それぞれの得意な分野をうまく使い分けることがその近道なのです。
それならば、講義の集大成として、週報作成というストーリーを楽しみながら、使い分けについて、演習で実際に経験して
しまいましょう!という内容になります。

それでは、超簡単マクロを体験するミッション(勉強会)へ出発しましょう!


2. 今までの講義のポイントを一挙に紹介します。<振り返り>

まず最初は、勉強会の最終回にふさわしく?第1回~第5回の勉強会の内容をおさらいします。
第1回から、徐々にステップアップして、いろいろなことを学習してきました。ひとつひとつ振り返ってみましょう。

① 画面キャプチャーを取って、テスト成績書を作成する

第1回のテーマは「Webアプリケーション ”BOLD” をテストせよ!!!」でした。Webアプリケーションの
テスト結果について、エビデンスとして画面キャプチャ―を取り、テスト成績書を作成しなければなりません。その数、なんと400画面!しかも5時間以内に完成させなければなりません。

作業工程としては、Webアプリの画面キャプチャーを取り、エクセルのテスト成績書に貼り付ける。
画面の大きさやレイアウトも揃えなければなりません。貼り付けた図を30%に縮小し、更に枠線を付けます。


ここまでで1画面完了。あと399画面です。
ここで400画面分の時間を試算してみます。
1画面に要した時間が45秒、次の画面に遷移する時間が15秒として、これを400回繰り返したら
総作業時間が約6.7時間!1.7時間もオーバーしてしまいます。
さて、あなたはどうしますか?お客様に「間に合いません」と報告して指示を待つしかないのでしょうか?

第1回の勉強会では、ここで「個人用マクロブック」への記録を行いました。

Webアプリの画面キャプチャーを取り、エクセルのテスト成績書に貼り付けたら、記録開始です。
貼り付けた図を30%に縮小し、更に枠線を付ける作業をマクロに記録します。
さて、マクロの威力は?
もう一度画面キャプチャ―を取り、テスト成績書に貼り付けたら、先程のマクロを実行してみましょう。

見事にミッションクリアです!
この後、更に、記録したマクロを指定した位置(ブレークポイントといいます)で止め、1行ずつ実行するということも学習しました。

② BOLD社の創立記念式典のゲーム結果を集計する

第2回のテーマは「BOLD社の創立記念式典を成功させよ!!!」でした。創立記念式典にて、ゲームの進行係になったあなたは、一刻も早くゲームの結果を集計し、会場の出席者全員に見せる必要があります。ゲームは30チームに分かれて行いました。ということは、30チームの集計をすることになりますね。

今回は、実際の集計表をイメージしたフォーマットを使用します。
まずは手作業で並び替え。得点の高い順に並べます。

集計ができたら、今度は2回戦用に、テーブル番号順に並びを戻します。

さて、あなたはこのまま手作業で続けますか?
本番では、実際にデータを入力します。入力データの確認作業も必要になりますし、入力ミスが発生した場合はさらに多くの時間を費やしてしまいます。式の進行が滞っちゃいますね。

第2回の勉強会では、秘密兵器として「ボタン」を活用しました。
もちろん、マクロの記録も行いますよ。今回はテーブル番号が小さい順に並び替え、得点が高い順(大きい順)に並び替え、2つの作業を記録しました。

「テーブル順」と「合計順」の2つのボタンを追加しました。ボタンをクリックすると…テーブル番号順に並び変えたマクロと、得点の高い順に並び変えたマクロ、2つのマクロがそれぞれ呼び出され、ちゃんと並び替えされます。
所要時間は、ほぼゼロになりました!

この後、更に、プロジェクトをロックする方法も学習しました。
せっかく作ったマクロを、勝手に書き換えられたり壊されたりしないための、大切な工程ですね。

③ お誕生会で発表する紙芝居を作る

第3回のテーマは「VBA紙芝居を完成させよ!!!」でした。このストーリーの主人公であるうさちゃんと
お誕生会に招待したお友達みんなの描いた絵を紙芝居にしなければなりません。

まず、1枚目のワークシートに1枚目の図を挿入・貼り付けします。

絵は全部で7枚。手作業で要した時間は16秒ほどでした。これを7回繰り返すことになります。
さらに11人のお友達の分も…となると、時間がかかりすぎてしまいます。さて、あなたはどうしますか?

第3回の勉強会では、第2回でも登場した「ボタン」を、またまた活用しました。
もちろん、ボタンがクリックされた時の動きは、マクロの記録を利用していますよ。

今回は、記録されたマクロをそのまま使うのではなく、ちょこっとプログラムを書き換えます。
貼り付ける図が保存されている場所を固定にせず、マクロファイルと同じ場所にすることで、
図を他の場所に移動してもマクロが動くようにしました。

マクロが1つ完成したら、あとはそれを6つコピーして、7つ分のマクロを一気に仕上げちゃいます。
コピーしたマクロの、異なる部分だけをそれぞれ書き換えると…あっという間に7つのマクロの完成です。

7つのワークシートにそれぞれボタンを作成し、それぞれ、7つのマクロを指定すると、紙芝居の完成です。
手作業でやった時と時間を比べてみると…

約17分も時間が短縮されました!
第2回までは、1つのワークシート内での作業を行いましたが、ここではじめて、ほかのワークシートに遷移する工程も追加されました。

④ 50ブック500シートのテスト結果を集計する

第4回のテーマは「むちゃぶり集計依頼に緊急対処せよ!!」でした。第1回以来のテスト結果のまとめですが今回は50ブック、500シートが対象です。

ベースとなるファイルの集計フォーマットをコピーし、テスト成績書の2つのブック、計5シートに貼り付けます。

これを50ブック500シート分、延々と繰り返す…所要時間もさることながら、貼り付けミスも心配ですね。

第4回の勉強会では、「クイックアクセスツールバー」を使用しました。クイックアクセスツールバーの存在は初めて知ったという声もありました。こちらももちろん、クリックされた時の動きは、マクロの記録を利用しています。

クイックアクセスツールバーをクリックしてマクロを実行すると、あっという間に結果が集計されました。

でも、作業はここで終わりではありません。
きっとまたすぐに同じ依頼が来ると予測して、ボタン1つで集計ができてしまうマクロも追加しました。
第4回では、「すべてをマクロで行うのではなく、関数も上手に利用する」 ことが業務効率化の近道である
ということも説明しました。

⑤ 開発週報を作成する

第5回のテーマは「今週も終わったぁ!..え?!開発週報を提出せよ!?」でした。第4回でも説明しましたが
「マクロの機能」だけですべてを作成するのではなく、「エクセルの機能」と「関数」を上手に組み合わせて
最短で成果を出すことを目的として講義を行いました。

週報のイメージは下図のような感じで、内容は大きく3ブロックに分割されます。
それぞれ、特性を生かして、「リンク貼り付け」、「マクロ貼り付け」、「CSV貼り付け」を行いました。

1番目のブロックはグラフと表のエリア。フォルダ名とファイル名は一定で、シート中のグラフや表の位置も
固定されています。そのため、ここでは「リンク貼り付け」を使用しました。

2番目のブロックも同じくグラフと表のエリアですが、こちらは元となるファイルの保存場所が一定でないため、マクロの記録を使用しました。
もうすっかりお馴染みになった「ボタン」を追加し、クリックしたら即データが反映されるようになりました。
今回は、マクロの記録では行えない処理として「画面のちらつき防止」および「メッセージの表示」を
追加し、より実用的なプログラムにしました。

そして最後に3番目のブロック。ここはCSVファイルの値をリアルタイムに反映させています。
「外部データの取り込み」機能を使用して、CSVファイルを読み込みました。

このように、データの形式に合わせてエクセルの機能を使い分けることで、最短で成果を出すことができると
いうことを学習しました。


3. ステートメントで遊ぼう♪<グループ活動>

さて、ここからが第6回の講義です。
今までのプログラムは「マクロの記録」をベースに行いましたが、「マクロの記録」では作成できないものの1つに「ステートメント」があります。ステートメントとは、プログラムで「1つの指令を与えるための文」。動きを制御する働きをする構文のことをさし、条件によって処理を変えたり、同じ処理を繰り返し行うなどが該当します。

今回は、「条件によって処理を変える」および「同じ処理を繰り返し行う」、2つのステートメントについて
サンプルプログラムをベースにいろいろコーディングを行いました。

⑥ Ifステートメントで遊ぶ

1つ目のステートメントは「条件によって処理を変える」、If文と呼ばれる判定文を使用したプログラムです。
まず実際に動かして動作を確認し、その後でプログラムを確認します。

こちらがサンプルプログラムです。

C5セルはプルダウン形式になっているので、「うさらい」を選んで「Ifで遊ぶ1♪」ボタンをクリックすると…

メッセージが表示されます。

が、プルダウンにて、うさらい以外を選択すると、ボタンをクリックしても何も起こりません。
さて、ここで、プログラムを見てみましょう。

If   Range(“C5”).  Value =    ”うさらい”   Then
もし  C5セルの     値が      うさらい     だったら

というように、特定の条件と一致したときだけ処理を行う、という判定文を追加しています。

⑦ For Nextステートメントで遊ぶ

1つ目のステートメントは「条件によって処理を変える」、If文と呼ばれる判定文を使用したプログラムです。
まず実際に動かして動作を確認し、その後でプログラムを確認します。

こちらがサンプルプログラムです。

F3セルはプルダウン形式になっているので、「うさらい」を選んで「Forで遊ぶ1♪」ボタンをクリックすると
B6からB10セルに「うさらい」の文字が入力されました。

同様に「Forで遊ぶ2♪」ボタンをクリックすると、B6からD10セルに「うさらい」の文字が入力されました。

ここで、プログラムを見てみましょう。

まず、Forで遊ぶ1では、
For 行 = 6 To 10
行が6から10の間、つまり、6行目から10行目に対して処理を行うという繰り返し文を追加しています。
続いて、Forで遊ぶ2では、
For 行 = 6 To 10
For 列 = 2 To 4
と、繰り返し文が2行書かれています。
これは、6行目から10行目の、それぞれ、2列目(B列)から4列目(D列)対して処理を行うと
いう繰り返し文を追加しています。

さて、ここまで一通りの説明をしました。ここからが実践タイムです。
サンプルプログラムの中に、コメント文で「ここに処理を入れてみて」という記載があります。
ここに実際の処理を入れてみて、プログラムを完成させます。

ミッションは以下の4つです。
MISSION 01 セルに色をつけてみて
MISSION 02 文字に色をつけてみよう
MISSION 03 文字の太さを変えてみて
MISSION 04 いろいろやってみよう
MISSION 01では、セル色を付ける作業をマクロで記録し、記録した内容を「ここに処理を入れてみて」の箇所に
入れてみます。すると…

B6からB10のセルの色が変わりました。
このイメージでMISSION 02から04までを各自で自由に行い、近くの人とグループを組んで、それぞれ成果を
発表しあいました。


4. 確認テスト

いよいよ最後の課題、この勉強会で半年間学んできた成果を確認するためのテストです。
全10問、みんなきちんと勉強していて、合格者がたくさん出ました!


5. 受講者の声と評価

今回の参加人数24名、受講者アンケートでは、満足度が平均「96.7点」を獲得し、「仕事先でもマクロを活用
しているので助かっています。」「現場でちょっとしたマクロを組めるくらいに成長できた」「6回分の勉強会でもっとVBAを学びたいと思えました。」など、多くの評価を頂きました。


6. 勉強会で伝えたい事

Microsoft製品であるExcelは、IT業界であればどの様な業務にも広く用いられており、Excelの操作一つで「パフォーマンスが高い・低い」と言われるほどです。このExcelは表計算ソフトとして「機能」「関数」「VBA」で構成されており、
その中で最も効率化に用いられる「マクロ」機能を学んでもらう為に、この勉強会を開催しています。
また、マクロ機能は単に「記録」「再生」するだけでは処理が期待値に届かない事も多く、一般書籍ではマクロ機能のみでは効率化が図れず、VBAプログラミングが必要とされています。しかしながら、この勉強会ではテキストには操作手順を画像で紹介し、StepByStepの演習を行う事で確実に理解できるようにし、マクロ機能の「コツ」や「作法」をお伝えする事で、簡単かつ効率的に処理を行い、初心者でも楽しく技術を身につけられる様に工夫し、現場で活躍できる事を目指しています。

一緒にプロフェッショナルを目指して頑張りましょう!!

本勉強会は、メイン講師2名・補助講師4名によって構成しており、受講者からの質問や問い合わせにも手厚く対応しています。ぜひ、見学に来てね!!

私たちは、全てのエンジニアに市場価値を高め自身の望む理想のキャリアを歩んでいただきたいと考えています。もし、今あなたが転職を検討しているのであればこちらの記事をご一読ください。理想のキャリアを実現するためのヒントが見つかるはずです。
文系IT未経験歓迎!【21卒対象】新卒採用のエントリーを5/24まで受付中!
文系IT未経験歓迎!【21卒対象】
新卒採用のエントリーを5/24まで受付中!