VBAをなぜ使うのか

VBA(Visual Basic for Applications)はExcelの作業の自動化を行うことで作業時間の短縮にとても活躍してくれます。

VBA自体はプログラミング言語ですので、プログラミングをしなければならないというハードルはありますが、それ以前の問題として、どういう場面でVBAを使えばいいのかが分からないので、結果としてVBAを使うに至らないこともありえます。

プログラミングというのは「ある課題を解決するための手段」に過ぎません。それはVBAも同じです。なんらかの問題・課題が無ければ別にVBAを使う必要はありません。そして、その課題・問題に気付かなければVBAを使った方がいいかどうかの判断もできません。

そこで、実際にVBAを導入する場合にどういう場面でVBAを使えばよいのか? というその見つけ方気づき方や、効果的なVBAの使い方について紹介します。


VBAでの効率化を考えた方がいいのはどういうときか

VBAを使うと効果的な場面は以下の2つです。

  • 同じことを何度も行っている場合
  • 作業が面倒な場合

このどちらかを感じたら、VBAの出番です。

「同じことを何度も行っている場合」や「作業が面倒な場合」の例として以下のような一連の作業が挙げられます。

  1. テキストファイルの内容を新規Excelブックに転記する。
  2. 入力したデータが正しいかチェックする。
  3. 不要なデータを削除する。
  4. データの並び順を変更する。
  5. セルの書式設定を行う。
  6. シート名を付ける。
  7. 指定されたブック名で保存する。

このような一連の作業を大量に毎日繰り返し行っているのであれば、間違いなくVBAでラクをした方がいいでしょう。データ量にもよりますが、手作業の数倍どころではなく10倍、100倍、1000倍という速さで終わります

これらの他にも、Excelを触ってて「あー、これ毎日毎日、同じことやってんなー」とか「もうこれホント、メンドクサイ」とかを感じることは多々あります。そう感じたらVBAの出番です。

VBAでなくてもExcelの標準機能のワークシート関数や条件付き書式などで対応できることもありますがやはり出来ることに限界があります。VBAは複数のことを一度で終わらせることが出来る利点があります。

ここまでが「どういうときにVBAを使えばよいか」を探す方法です。ここから先は実際にVBAでプログラミングを行う話になるため、プログラミング自体の壁がありますが、「VBAでどういうことを解決したいか」という課題は明確になります。


VBAを使うと時間短縮だけでなくミスが無くなる

上記のように、「同じことを何度も行っている場合」や「作業が面倒な場合」に対するVBAでのプログラミングをすることで、作業がラクになるという利点があります。

ただ、作業がラクになるのは、単に手を動かす時間が短縮されることだけではありません。

それとは別に、「ミスが無くなる」という多大な効果があります。ミスが減る、ではなく、ミスが無くなる、です。

手作業のミスが一切無くなります。目に見えませんが、これは絶大な効果です。

人間の作業の中で時間が掛かるものの一つに「ミスしたことへの対応」があります。これは本当に時間が掛かります。ミスが無ければ「ミスの対応」などそもそもやらなくてよい作業ですし、ミスしたら「報告書を書け」だの、「原因分析しろ」だの、うるさいことを言ってくる時間泥棒に遭遇することもなくなります。

あなたの大事な人生の時間をVBAを使って守りましょう。

もちろん、ミスが無いようにプログラミングをしておかなければなりませんが、ミスがあっても修正すればいいだけですし、望んでいる形になってしまえば状況が変わらない限りずっと使い続けることが出来ます。


VBAのコードを書くには

VBAを使って効率化を図りたい作業が見つかったあとは、実際にVBAでプログラミングをすることになります。

熟練の人であればいきなりプログラムを書いてしまうことも可能ですが、そのような人はおそらく少数派です。

そうでない場合は、VBAの本を読んでみることをお勧めします。書店に行って自分に理解できる内容かどうかを確認した方がいいでしょう。

以下の本は基礎から分かる読みやすい良書です。2019年出版ですがVBA自体はバージョンで変わることはほとんどないので気にしなくていいです。知人の経理事務の仕事をしている方は元々プログラミングを全くできませんでしたがこれを読んでVBAを自分で書けるようになりました。

よくわかるExcel 2019/2016/2013 マクロ/VBA

本にも書いてありますが、実際にVBAに慣れるにはまずマクロの記録機能を使うのが一番の近道でしょう。

あとは、ネットでサンプルコードを探すか、ChatGPTのようなAIを利用してコードを書いてもらうか、などの方法がありますが、そのコードが自分が探しているものなのかを判定できないのであれば、闇雲に彷徨っている状況ですので、結局は学習した方が近道です。

上記は基本の基本の本なので、ある程度理解が進むと物足りなくなります。そういう場合はさらに自分のレベルに合う本を書店で探してみてください。