「Excel の VBA を使えば業務を効率化できる」
よく聞く話だと思います。
たしかに効率化できる部分も多くあります。今まで1時間かかっていた作業が数分でできるようになることもあります。
じゃあ、VBAを勉強してコードを書けるようになればいいのか。というと、話はそう簡単でもありません。業務の効率化にあたっては、まず考えるべきポイントがあるのです。
その業務って具体的に何をやってるの?
これはVBAがどうこうという以前の話なのですが、行っている業務自体をきちんと把握していなければ効率化も何もできません。業務の内容や流れを具体的に説明できるかどうか。
例えば、
- 誰が、いつ、どこで、どのぐらいの頻度で行っているのか。
- その処理全体の流れはどうなっていて、どのファイルを使用しているのか。
- 最終的なアウトプットはどのような形式なのか。
といったところです。
処理内容をあらためて見たときに、もしかしたらVBAを使わずに関数やエクセルの機能で間に合うかもしれません。
途中で省略できる処理があったり、アウトプットの形を簡素化できるケースもあったりします。
場合によっては、その業務自体、不要だったりすることも。。
特に長年、引き継がれて行っているような業務は、なんとなく以前と同じやり方で続けていることも多いので注意が必要です。
まずは業務内容を把握して、オペレーションとして改善できるところがないかを洗い出すことが大事です。

どこで VBA を使うのか
特にVBA自体をあまり知らない人(例えばあまりシステムに詳しくない上司とか……)にありがちなのですが、
「Excel の VBA ってやつを使えば、ボタンをポンッと押したら全部やってくれるんでしょ」
みたいな話もよく聞きます。
まあできなくはないでしょう。
でもそういうことを言う人に限って
「この場合だったらこうして、あの場合はああして、ここにはこのデータが表示されるようにして、あとはこの部分は選択式にしてAを選んだらこうなって……」
なんていう感じで、次から次へと要望を挙げてきたりします。それってほんとにVBAで作るんですか?と言いたくなるような話です。
エクセルの関数や機能をすっ飛ばして VBA で自動化するのがよいことなのかどうか。
大事なことは「どこで VBA を使うか」を判断することです。
VBA はあくまでも業務を効率化させるためのひとつのツールでしかありません。
さらに言えば、RPA(Robotic Process Automation)もだいぶ普及してきています。エクセルと同じく Mircosoft の Power Automate や Power Apps を使って業務フローを自動化したり、アプリを作ったりすることもできます。
これまでのようにプログラムのコードを書かなくてもツールが作れる環境(ローコード,ノーコード)が増えてきていますので、使用するツールの選択肢が広がっていることをふまえて考えていく必要があります。
ニューバランスのおすすめスニーカー
New Balance Japanのストアをチェック!
フローチャート描けますか?
業務の内容を確認したうえで、じゃあこの部分を VBA で作っていきましょうとなったとき、いきなり作り始めるのは難しいですよね。
「えーと、この場合はこうして、ここでああして……」と考えながらできる人もいるかもしれませんが、やはり設計図があったほうが作りやすいです。
フローチャートを描いて処理の流れを整理し、可視化しておけば、あとはそれに従って VBA のコードを書いていくだけです。
処理の流れと言っても、基本的には ”条件分岐” と ”繰り返し” の組み合わせですので、普段行っている処理であればすぐに整理できるかと思います。業務内容や処理の流れを確認する過程で、業務フローを図に描いていくとスムーズです。
前述のようにRPAのツールを使う場合も同様です。

このように、VBA で業務効率化するにあたっては、
- 現在の業務を整理する
- どこからどこまでをVBAで行うのかを判断する
- 処理の流れを可視化する
といったスキルが求められます。
もちろん VBA のコードを理解することも必要ですが、VBA が書けるからと行って業務効率化ができるというわけではない、ということです。
業務自体をしっかり把握することから考えていくようにしましょう。
Excel でリストの途中に空白行を入れるには – oshigotono.com