こちらの記事は次のようなことを知りたいという方に向けて書いています。
- Excelマクロで自動化できるって聞いたけど、Excelマクロって何?
- ExcelマクロとVBAの違いは何?
- Excelマクロを使用するメリットとデメリットは?
今回は、ExcelマクロのVBAとの違い、Excelマクロのメリットとデメリットについてのお話をします。
Excelマクロとは?
マクロとVBA
まず用語について解説しておきます。
マクロとは
マクロとは、 コンピュータを利用した操作を自動化する技術の総称です。私達が仕事などでよく利用するMicrosoft ExcelやWord、PowerPoint、Outlookなどに搭載されていますし、他のアプリケーションでも一定の操作を記録または定義しておいて、それをひとまとめにして連続して実行する、といったことを可能にしています。
この記事で取り上げるExcelのマクロも、この説明を当てはめると、
Excelマクロ:Excelの操作を自動化すること
と言い換えられます。
VBAとは
VBAとは、Microsoftの提供しているVisual Basic for Applicationsの略称です。
Microsoftが開発した汎用プログラミング言語であるMicrosoft Visual Basicを、同社製品のMicrosoft Officeに搭載したものがVBAということです。
VBA:ExcelなどOffice製品で動かせるプログラミング言語(Visual Basic)
ということになります。
マクロとVBAの違い
マクロとは自動化する技術、VBAはExcelなどで動かせるプログラムなので、VBAを使ったマクロ(自動化技術)がExcelマクロということになります。よく同じような意味で使われることがありますが、実際は違うんですね。
例えばTVゲームなんかでも、同じような操作を1つのボタン操作に登録することをマクロと呼んだりしますので、マクロというのは汎用的に使われる、もっと広い意味になります。
Excelマクロの特徴
プログラミングなんて、できないよ!という方も多いと思いますが、心配する必要はありません。
Excelマクロはプログラミングが全くわからなくても便利に使用できます。そして、プログラミングのことが少しわかっていれば、ものすごく便利に使用できます。
マクロの記録で自動化を作成
Excelマクロにはマクロの記録という機能があり、Excelで自分で操作した内容をプログラムとして記録することができます。
まったく同じ操作ならば、記録したとおりに実行されるので、これだけでも自動化が実践できるのです。
プログラミングは敷居が高くて無理!と思う方でもやり方さえ覚えれば結構簡単にできますよ。
(少し慣れれば)多くの作業を簡単に自動化できる
マクロの記録だけでは、ほぼまったく同じ操作しか繰り返すことができませんが、少しVBAのコードとプログラミングに必要なアルゴリズムを理解できれば、多くのExcel作業を自動化できます。
同じことをPythonなど他のプログラミング言語で自動化しようとすると、少し敷居が高くなりますが、さすがMicrosoftの製品用に用意された言語であるため、難易度もそこまでは高くないです。
もちろん、その作業をExcelマクロ化するのには何時間かかかるかもしれません。でもそれが毎日とか週に1度とか、作業頻度が高いものであれば、短縮する時間の方が多くなって、結果的に作業効率化に貢献することができるのです。
Excelマクロのメリットとデメリット
Excelマクロのメリットとデメリットを述べます。
Excelマクロのメリット
- くり返し必要な作業の時間短縮ができて、他のことに時間を利用できる
- 作業ミスを減らすことができる
- 自動化に対する理解が深まりRPA化など次のステップに進む際にも対応が可能になる
以下、解説します。
くり返し必要な作業の時間短縮ができ、他のことに時間を利用できる
Excelマクロは、上でも述べましたが簡単に作業の自動化が可能です。自動化の際には少し時間がかかるかもしれませんが、一度自動化してしまえばそのExcelマクロを使い続けることができます。
ここで期待される効果は、時間の短縮です。
働き方改革という言葉がはやっていますが、社会保険労務士資格を保有する私としても、ワークライフバランスの確保や労働時間の短縮は社会的に必要な動きであると考えます。
そのためには、無駄な仕事をやめる、というのが一番ですが、自動化できるものは自動化してしまうのが効果的です。そして、そこで短縮した時間を使って、さらなる時間短縮を進めていく。
あくまでも集計業務に限定した話になってしまうかもしれませんが、会社でやっている集計業務というのは思ったよりも改善の余地が大きいと考えています。
作業ミスを減らすことができる
Excelマクロは基本的にプログラムで書かれたことを忠実に実行します。よって、人間がその操作をするよりもミスする可能性は低くなります。
人間は、思ったよりもミスが多いです。これはExcelマクロを含め、自動化に取り組んでみるとよくわかります。
例えば、同じ操作を同じように実行してくれるExcelマクロを作ってみて、デバッグのためにそれと同じことを自分でやってみます。そうすると、結果が合わず、実は自分の手作業が間違っていた、ということに気がつくことがあります。
私がミスの多い人間、という可能性もありますが、人間は大体ミスをするものです。
作業の難易度によっても異なりますが、基本的に各個人の性格や作業に対して重視するポイントが違うこと、結果のチェック回数とか、作業にかける時間など、各個人で異なります。
出てきた結果(ミス率)だけを見れば、人によってバラツキがあり、ミスが少ない、という人はいるでしょうが、作業の最初から最後までミスなくできている人というのはほとんどいないのではないでしょうか。
こうした作業中のミスも含め、結果的にミスを減らし、手戻りを防ぐことができるのがExcel自動化です。
RPA化など次の自動化ステップに進む際の対応が可能になる
RPAという言葉をご存じでしょうか。Robotic Process Automationの略で、意味は
ソフトウェアロボット(ボット) 又は仮想知的労働者と呼ばれる概念に基づく事業プロセス自動化技術の一種である。
Wikipedia RPAより
となります。簡単に言うとロボットで作業を自動化することと考えていいと思います。
Excelマクロの自動化もRPAの末端のようにも見えますが、一般にRPAというとある程度大きな会社で、多くの部門にまたがって、業務やアプリケーションを統合した形でおこなわれる自動化を指すと考えます。
このRPAですが、現在多くの大企業で導入が進んでいます。理由は・・・人間の行う作業を減らすため、ということになるでしょうね。
Excelマクロのメリットの1と2で説明しましたが、逆説的に考えれば人間が作業をすると「時間がかかりミスが増える」わけですから、自動化した方がいう考え方もあるでしょう。
RPA自体は、私が関わっている限りでは、まだまだ発展途上な部分が見受けられますが、間違いなくレベルはどんどん向上していきます。
なにしろ、問題があればそれをフィードバックして、どんどん改善に役立てていくわけですから、レベルが向上しないわけがないのです。
Excelマクロを使って自動化の意識を常に持っていれば、RPAに使われるよりもRPAを使いこなす側に回ることができるかもしれません。私がExcelマクロの活用をオススメするのは、将来的にこうしたシステムを使いこなす側と、システムに使われる側に別れてくることを想定しているからです。
Excelマクロのデメリット
- 間違ったExcelマクロは間違った結果を出してしまう
- 変化が起きた時に対応できるかが不明確
- ある程度きちんと利用するためにはコスト(時間・費用)が必要
こちらも以下、解説していきます。
間違ったExcelマクロは間違った結果を出してしまう
これはプログラムの宿命です。Excelマクロは命令したとおりに実行しますので、命令が間違っていれば結果も間違っています。
これを防ぐためには間違いを侵さないためのコーディングや、徹底したデバッグが必要になります。
少し作業を自動化する程度のExcelマクロであれば、そこまで考えなくてもいいかもしれませんが、いずれにしても間違ったプログラムを実装しないように注意は必要です。
変化が起きた時に対応できるかが不明確
一度作成したExcelマクロは便利に使用していくことが可能です。ですが、何か変化があったときに、常に対応できるとは限りません。
作業の内容にもよりますが、下記のようなことが考えられます。
- 受領するデータのフォーマットが変わった
- 作成するデータのフォーマット変更を命じられた
- 一部のデータの追加・削除が必要になった
- Excelのバージョン(言語含む)が変わった
私の場合、とあるきっかけでExcelの英語版を使用することになり、日本語版で作成したマクロが使用できず困ったことがあります。
いずれにしても、こうした変化が日常茶飯事でおこなわれるような場合には、Excelマクロは使用しづらいかもしれません。特にマクロの記録で自動化をしている場合は、その作業がすべてやり直しになってしまうことが多いです。
ある程度きちんと利用するためにはコスト(時間・費用)が必要
Excelマクロを使いこなしていくレベルになるためには、コストが必要です。コストというのは費用だけでなく時間のことも含みます。
今はインターネットであらゆる知識が得られますので、費用をかける必要はないかもしれませんが、ある程度のことを学ぼうとすると、費用をかけて学んだほうが早い場合もあります。
効果を考えれば、Excelマクロについての本を読んだり、高額ではない通信講座を受講したりするのもありかと思います。
また、時間についてはある程度知識がついてくれば自動化する作業について、マクロ構築に要する時間と、マクロ化で短縮できる時間の見積もりができるようになり、マクロ化の要否の判断ができるようになりますが、慣れないうちは試行錯誤する必要がありますし、時間を掛ける必要があります。
これが業務時間中にできるのであればいいですが、それが不可能な場合は別に時間を取る必要があります。
まとめ
今回の記事をまとめます。
- Excelマクロはプログラミング言語VBA(Visual Basic for Applications)を使用したExcelの自動化のこと
- ある程度知識があればとても簡単・便利に自動化が可能になる。自動化についての知識を得れば、今後のRPA対応にも有利に働くかも!?
- 便利とは言ってもプログラミング言語であることには変わらないので、理解していないと困ったことになる可能性もある
しっかりと内容を把握して、便利にExcelマクロを使っていきたいですね。
私も今後の記事でExcelマクロの簡単・便利な使い方をお伝えしたり、私の作ったマクロを公開したりしていこうと思います。
ここまでお読みいただきましてありがとうございました。