株式会社リクルートスタッフィングが運営するITSTAFFINGでは、弊社に派遣登録いただいている皆さまのスキル向上を支援するイベントを、定期的に開催しています。
2017年2月17日には初心者向けのVBAイベント「VBAからはじまるエンジニア~エクセル事務からプログラマーへ」を開催しました。今回は、ITSTAFFINGのイベントとしては最大規模の200名近く集まるイベントとなりました。その模様をお届けします。
■今回のイベントでは…
・1分間でデスクトップにフォルダーを100個に。…マクロを作れば簡単にできるのです。
・難しいと思われがちなソースコードの読み方をご紹介!
・実際のプログラムを書く手順をマスター。
Excelを使ったことのある人なら、耳にしたことのある「マクロ」。マクロが作れるようになれば、”派遣エンジニア”としての道が開けるかもしれません。ぜひ最後までご覧ください。
▲【講 師】株式会社すごい改善 代表取締役 吉田拳さん
Excel業務改善コンサルタント。Excel研修講師。実務直結主義のExcel研修を毎週開催、全国から受講者が参加し、常に2か月先まで満席状態が続く。また、業種・業態・職種を問わず、Excelを駆使したあらゆる分野での業務改善の専門家として知られる。著書に『たった1日で即戦力になるExcelの教科書』や『たった1秒で仕事が片づく Excel自動化の教科書』。
一瞬で終わるデモで、マクロの意義を「魅せる」
デスクワークに付きもののExcel作業ですが、毎週、毎月、毎日とルーチンで行うものなら、そのたびに時間をかけるのは大きな時間の損失。一度マクロを作ってしまえば、わずらわしいルーチンワークが一瞬で終わる、という世界が待っているのです。
まずは本題に入る前に、請求データが一覧になっている表から、1枚ずつの請求書を作成するデモが見せて説明されました。ボタンを押すだけで、元のデータから一瞬で20枚の請求書を作成できました。単純作業に時間を取られた経験のある人なら、自分で作ってみたいと思うことでしょう。
当日は、ひとり1冊ずつ『たった1日で即戦力になるExcelの教科書』が無料で配布されました。
実際のソースコードを読んでいく
次に、デモで見せたマクロのソースコードをモニターに映します。見ると、ほんの十数行のコード。ここで、読み方、つまり日本語への翻訳の仕方を説明します。
・ピリオドは「の」と読む
・イコールは「を~にする」と読む
例えば、「ActiveSheet.Name = Cells(i, 3)」という行があれば、「アクティブなシート『の』名前『を』セル(i, 3)の値『にする』」という意味になります。そのように、他の用語についても読み方を説明していきました。
「100個のフォルダーを作れ」と言われたら……?
「マクロ」と「VBA」とは、それぞれどんな意味なのでしょうか。解説は次の通りです。
・マクロ・・・Excel作業を自動化するための機能の名称
・VBA・・・自動化のためのプログラミング言語の名称
ここで、実際にプログラミングをしてみます。上司から「100個のフォルダーを作れ」と指示されたという前提で、プログラムを書いていきました。マクロを作るためのVBEの立ち上げ方、書き始めは「Sub」、といったごく基本的な手順から解説します。
説明しながら実際に入力していく様子を見ることができたため、VBA初心者でも理解ができます。プログラミングを書く際の思考としては「会話が成り立たない相手に、自分の意図を伝える」という意識が大切です。人間を相手にしたコミュニケーションのように「汲み取ってくれる」ことがないため、フォルダーを作る場所や、その時の名称まで逐一記述する必要があります。
次に、ほんの数分で作ったプログラムを実行してみます。1秒足らずで、デスクトップいっぱいにフォルダーができる様子が見られました。
「マクロの記録」は、ヒントをもらうための道具
実例を見ながら、Excel VBAを仕事に活用するための学習の注意事項が説明されます。
・使いこなすハードルは極めて低いことを理解する
マクロはそれほど使いこなすハードルが高くないとのこと。正しい手順で勉強すれば、誰にでもできるのです。
・VBAの前にExcelの基本機能、関数の使用スキルが必須
関数の理解がないために、無駄なプログラムを作ってしまう事例も紹介。関数なら一瞬で終わることを、数時間かけてプログラムしてしまった人がいました。
また、全国に報道されたニュースで、並び替えにミスがあったために起きた情報流出の事例も。そういった無駄や間違いを省くためにも、Excelの基本機能や関数の理解は大切です。
・自動記録から作り始めようとしない
Excelには、「マクロの記録」という機能があります。記録をオンにして操作すると、マクロとして記録してくれ、同じ処理が簡単にできるというもの。ただし、これは汎用性がありません。マクロを作るためというよりも、ソースやコマンドを参考にするために使うと効果的です。
・完璧に理解することにこだわりすぎない
完璧な理解にこだわりすぎてしまうと先へ進めない、とアドバイスがありました。作って直して……を繰り返すのがスキルアップの近道です。
実際の演習問題をまずは読んでみる
プログラミングを読めないと、書くことはできません。まずは読めるようになることからスタート。実際の演習問題でトライします。売上データが載っている表を表示し、データを抽出したり、判定をしたりする問題です。マクロで実装する内容は以下の通り。
1.F列にA列の左から4文字を取り出した値を入力する
2.G列に、売上高が50万円以上だったらA、そうでなかったらBを入力する
ここでソースを表示して読みながら、再度、読むときのポイントを復習します。
・ピリオドは「の」と読む
・イコールは「を~にする」と読む
読みながら、その都度必要な部分を解説する進め方なので、とても実践的です。
先ほど読んだプログラミングを書いてみる
先ほど解説しながら読んでいったソースを、今度は講師がその場で書いていきます。VBAプログラミングのプロセスは、以下のように進めていきます。
1.まず手順を日本語で書き出して全体のプロセスを設計する
これは、セミナー中に何度も念押しされたほど、大切なプロセスです。いきなりプログラムを書こうとせず、「F列にA列の左から4文字を~」というように、まずは日本語で書き出しましょう。
2.マクロを組み込むExcelを開き、「Alt+F11」を押してプログラミングツール(VBE)起動する
3.VBAを書き込むためのシート(標準モジュール)を用意する
4.Subから始まるプログラムを書く
入力の際、コマンドは小文字で入力しましょう。改行すると、スペルミスなどがなければコマンドの1文字目が大文字になり、判別できます。また、Tabキーでインデントを揃えて見やすくすることや、日本語のコメントで説明をすることも大切です。
5.テスト実行を行い、意図通りに動くか確認する。問題があれば修整する(デバッグ)。
テスト実行について、最初は「F8」でプログラム1行ずつ進めていくのがおすすめです。プログラムの間違いはスペルミスやドットとピリオドの打ち間違いが多いので、気をつけましょう。
マクロ開発でぶち当たる壁は?
プログラミングは基本的に、For構文で繰り返す、IF構文で分岐する、の組み合わせ。VBAセミナーで真っ先に教えるのは以下の項目で、これが最も重要なことだと言います。
・セルの指定方法
・繰り返し処理のFor Next構文
・条件分岐のIf Then構文
さらに、誰かから依頼を受けて開発するときには、要件を事細かく聞いておくことがとても大切です。さらに、よかれと思って付けた機能、相手にとって不要ということもあります。オーバーサービスに注意、といった助言もありました。
《イベント参加者の声》
アンケートによると、参加者からこんな声がありました。
・ちょうど今仕事で単純作業の自動化を考えていたので、役に立った。
・本当に、マクロに対するハードルが下がった。目からうろこでした。
・まず日本語にするという点は、基本的なことだが、案外できていなかったので、非常に参考になった。
・非常にわかりやすく、また、書いてみよう!という意欲がわいてきました。
・難しい印象のマクロを簡単に感じるぐらいにハードルを下げていただいたと思います。