VBAとマクロの基礎知識
![](https://assets.offers.jp/media/wp-content/uploads/2019/04/20001929/analysis-3753757_1280.jpg)
Microsoft Officeのソフトは、PC作業を必要とするさまざまな業種で用いられています。業務の中には「データの中身は違うけれど、やることは同じだ」というルーティンな作業も多々あるでしょう。こうした作業を簡易化できるのが『マクロ』です。
たとえば、Excelを使って同じフォーマットに収まったデータを同じように加工する作業があったとき、その作業自体をマクロに記録しておきます。すると次回の作業からはマクロを起動させるだけで一連の作業が完結させられるのです。
マクロは、特定のプログラミング言語で記録されますが、このプログラミング言語を『VBA(Visual Basic for Applications)』と呼びます。
VBAやマクロのメリット
Excel VBAを使ってマクロを作る最大のメリットは、『作業時間を大幅に短縮できる点』にあります。
先に述べたような、ある決まった作業を必要とするのが一つのExcelシートのみであれば、かかる時間は手作業とそれほど変わりないかもしれません。
しかし、同じフォーマットで管理されたいくつものExcelシートで、同じ作業を繰り返すとなるとどうでしょうか。マクロを選んで再生するだけであれば、手作業に比べてはるかに効率的に時間を使えるようになるでしょう。
また、マクロの操作だけであれば簡単なので、Excelに不慣れな人でも、入力すべきデータがそろっていれば誰でも作業できる点もメリットといえます。
VBAやマクロではできないこと
データ集計のほか、グラフ作成なども含め、Excel VBAはほとんどの作業で利用できます。しかし、なかにはマクロに任せるには不向きな作業もあるのです。
Excelで膨大なデータを管理しようとすると、マクロを起動しても作業が終わるまでに長時間かかってしまう場合があります。一つのExcelシートで扱うデータ数は2000~3000件程度と考えておきましょう。
それ以上のデータをまとめるのであれば、データベース管理システム専用のソフトであるAccessを使用した方が効率的です。
ExcelのVBAやマクロ作成の相場は?
![](https://assets.offers.jp/media/wp-content/uploads/2019/04/19151518/denise-jans-1203943-unsplash-e1555894007444.jpg)
便利なのは分かったものの、自分で作るとなるとハードルが高いと感じる人も少なくないでしょう。Excel VBAは覚えてしまえば便利ですが、2~3日勉強してすぐに扱えるものではありません。
また、どこをどう効率化させられるのか、VBAでどこまでできるのかの判断もつきにくいでしょう。
作業を効率化しようとして、VBAについて考える時間だけが過ぎてしまっては本末転倒です。そこで、VBA開発を依頼した場合について見ていきましょう。
VBAやマクロの開発は安い?
Excel VBAは、ほかのプログラミング言語に比べると簡単に作成できるため、開発費用はそのぶん安く抑えられます。
依頼者によって作業内容は異なるため、一概にマクロ1個いくらとはいえませんが、先に述べたような単純作業であれば10~40万円で依頼が可能なことも多いでしょう。
また、他言語ではSQL Severなどと連携する場合や、データ量が膨大であったり、自動化する作業ボリュームがあったりすると、システム構築に数千万円かかることも珍しくありません。
こうした場合でも、Excel VBAであれば予算100万円以内に抑えることも可能です。
出典:ExcelVBA開発の導入の流れと価格相場とは│【リカイゼン】見積依頼・発注先探しのビジネスマッチングサイト
ExcelのVBAやマクロを依頼するときの注意点
![](https://assets.offers.jp/media/wp-content/uploads/2019/04/20153003/analysis-brainstorming-chart-1571699.jpg)
費用対効果を考え、VBA開発を依頼してExcelでの作業効率化を図ろうとする場合、依頼前に次の3点について今一度見直してみましょう。
Excel VBAを取り入れたい部分を明確にし、実際にVBAが適した作業なのか確認しておくことが大切です。
作業のどこを効率化したいのかを決める
日々作業していると、うっすらと「これが自動でできたら」と思う部分があると思います。
業務の切り取られた一部分だけを機械的にこなしていると、なかなか見えてこないものですが、業務を全体的に捉え、何をするために今の作業が必要なのか考えてみると効率化するべき部分が見つかるでしょう。
また、人が作業する以上ミスが出るリスクは付いて回ります。単純なミスを回避したい部分をVBAに任せるということも、効率化する部分を決める際に考えておきましょう。
VBAやマクロを生かす場所
「なんでもできる」といわれると、逆に何を自動化すればよいのか分からなくなるものです。そこで、ある程度『自動化できる作業』や『自動化した方がよい作業』に的を絞ってみましょう。
マクロに記録させたいのは、毎日何回も行うような繰り返し作業や、一定の操作ができれば誰でもできるような作業です。
また、何かのデータを抽出したり、グラフを作成したりするまでの作業ボリュームがあり、毎回時間を取られるような作業はマクロで効率化を図りたい部分といえます。
複数人での作業や膨大なデータには不向き
Excelは同一ファイルをほかの人が開いていると、基本的には読み取りモードでしか開けなくなるため更新ができません。そのため、同じファイルを複数人が使用するような環境ではVBAを組み込むのに不向きです。
先にも述べましたが、あまりにデータ数が多い場合も、たとえ自動化しても完了までの時間がかかってしまいます。
また、古いバージョンのExcelで作ったマクロは新しいバージョンのExcelで作動しない場合があり、定期的にシステムの見直しが必要になるでしょう。
まとめ
一度マクロに作業を記録してしまえば、決まった作業を自動化でき、日々の作業効率をあげられるのが最大のメリットです。
VBA開発は他言語に比べて費用が安くすむことが多いです。Excelで管理するのに適したデータベースであれば、費用に対して大きな効果が得られるでしょう。