目次
VBA(Visual Basic for Applications)とは、マクロ(処理の自動化機能)を作成するプログラミング言語です。Microsoft Officeアプリケーションの拡張機能であり、Word、Excel、Access、PowerPoint等で誰でも利用することができます。
Microsoft Office アプリケーションさえ企業で導入していれば自社開発が可能であり、人件費を除けば実質”0円”で開発が可能という点で強みがあります。
プログラミング言語という表現をすると構築難易度が高いように聞こえますが、Excelでは自身が操作した動きをそのままマクロ化する「マクロの記録」といった機能も備わっており、簡単な業務自動化であればノウハウが無くとも実現できる仕組みになっています。
本記事では、Microsoft Officeアプリケーションの中でも特に身近なExcelのVBAについて、主に「マクロの記録」機能に焦点を当ててご紹介いたします。
尚、本記事は業務自動化に興味はあるものの始め方がわからない、という方を対象としています。
※弊社HPでは、同様に業務自動化ツールであるRPA(Robotic Process Automation)についての記事も公開していますので、ご興味があれば過去記事(「ゼロから始まる:RPAについての基本とケーススタディ」、「RPA導入時に最も考慮しておくべきこと」、「なぜ重要?RPA導入するための環境構築」)を是非参照ください。
まず、業務自動化を始める上での注意点をお伝えします。
業務自動化を推進するにあたり、陥りがちなのが「手段の目的化」です。
いつの間にか自動化の完成が目的にすり替わり、作成したマクロが本来の意図とずれた動きをしてしまい、費やした工数が無駄に帰すことは少なくありません。
常に目的を意識し、本当に必要な業務自動化とは何なのか忘れないようにすることが重要です。
業務自動化を行う主な目的は事業の生産性向上にあり、以下のいずれかであることがほとんどです。
・業務効率化による工数削減、及びコスト削減
・ミスの削減による業務品質向上
さらに具体的な問題の例として、社員の残業が増加している、手作業によるオペレーションミスが目立ち品質低下傾向にある、といった内容が挙げられます。
では、本題のExcelVBAの内容に移ります。
ExcelVBAで作成したマクロでは様々な業務を自動化できますが、外部システムとの連携、膨大な量のデータ処理などには不向きなため、そこまでの自動化を実現したい場合はRPA(Robotic Process Automation)ツールを導入した方が無難なケースが多くあります。(前述の過去記事参照)
それでも、多くの企業でルーチン化されているような基本的な業務であれば、ExcelVBAで十分実現可能です。よくある業務自動化例としては、以下が挙げられます。
とはいえ、VBAがプログラミング言語であることには変わりありませんので、それなりに習熟度がないと上記の自動化例のようなマクロを実装するのは難しいでしょう。
ただ、上記表の一つ目「指定列の並び替え・色付け等基本操作」といった基本的な内容において「マクロの記録」機能を使用することで、VBAが全くの未経験でも簡単に自動化を実現することができます。
自身でコードを記述して作成するマクロと比較すると、実現可能範囲は狭く精度も落ちますが、単調で且つ形式が変化しないExcel上の処理であれば、十分に自動化ツールとして成り立ちます。
「マクロの記録」を使用したマクロ作成の工程は以下5ステップです。
これでマクロが保存され、以降はマクロを起動することで処理を自動的に行ってくれます。
工程2の開発タブ表示の操作は以下の通りです。
工程3~5の記録~完了、マクロの再使用までの操作は以下の通りです。
注意点として、マクロの記録は細かな条件判断(数値の大小、特定のワード等)や、繰り返し処理は対応できません。
そのため、処理したいフォーマット、及び対象のセルが不変であることが適切な自動処理を行う前提となり、限られた業務にしか効果を発揮できないと言えます。
ただ、作成した処理のコードを確認しながらマクロの理解を深めていくことは可能です。
今後、VBAによる自動化ノウハウを蓄積するにあたっての取っ掛かりとして、「マクロの記録」を活用することは有効です。
本記事で取り上げたExcelVBA、及び「マクロの記録」は、業務改善手法の一つに過ぎません。
外注でのRPAの導入、あるいは業務の完全システム化という選択肢も当然存在します。
自動化検討する観点は何なのか(コスト削減、工数削減、ミス削減等)、自動化予算はどの程度確保できるのか、いつまでに自動化したいのか、スキルを保有した社員は在籍しているのか、対象業務はルーチンなのか、フォーマットは固定なのか、そもそも自動化が最善の手段なのか、etc…様々な視点から検討して選択する必要があります。
ここで判断を誤ると、無駄なコストの発生や、本来実現したかった内容とは異なる成果物が出てくるリスクを抱えることになります。
まずは自社の課題を正確に把握し、目的に沿って改善方法を模索して、その改善手法の一つとしてローコストで未経験でも実現可能なVBA(マクロの記録)という選択肢があるということを、本記事を通してご理解いただけましたら幸いです。
アーツアンドクラフツConsulting & Solution事業部/プログラマー。得意分野は業務コンサルティング。