文系が独学2週間でVBAマクロを学び、業務を自動化した方法


大量のデータ処理業務を自動化するために、VBAを独学で学ぶに至りましたので、その勉強方法の共有です。

まだとても上級とは言えないレベルですが、他人が作ったマクロファイルを手直しして流用したり、複数のデータを紐づけてマスタデータを作りFTPでシステムに送信するマクロぐらいは作れるようになりました。

自分もそうでしたが、VBAや自動化に興味はあり学びたいという思いはあるが、何から手を付けたらいいかわからない人はいると思うので、参考にしてみて下さい。

VBAを学び始めたきっかけ

データ分析業務の一連の流れの中で、自分の業務時間の大半を奪うのが、データを加工するプロセスです。

例えばデータ同士を紐付けたり、関数を書いたり、フォーマットを変えたり、フィルタリングしたりと、考えつつ手を動さなければいけないことが多いです。

これが単発の作業なら我慢できるのですが、毎日同じようなことを繰り返しやるのはしんどく、疲労が蓄積してくると作業の精度も落ち、細かいミスも出てくるので、何とかこの作業を自動化して快適なビジネスライフが送りたいと色々調べていた時に知ったのがVBAでした。

最初はRPAツールで対応しようとしたものの

自分はコーディングに対して勝手に苦手意識を持っていたのもあり、可能ならプログラミング言語は使いたくないなぁと考えていました。

そこで最初に使ったのがノンコーディングツールのRPAでした。具体的にはUiPathを使って進めました。

ところが、いざやってみると、Excel上の細かい動きをフローに落とし込むのは可能ではあるようですが、設定項目が多く意外と複雑で、VBAで対応することにしました。

また色々調べていると、VBAマクロの実行はUiPathでもできることを知り、だったらExcelの自動化プログラムはVBAで作り、実行の部分はUiPathでトリガーを引く「UiPathとVBAのハイブリッド型」の方が良いと考え、VBAを学び始めました。

VBA独学での学習の流れ

個人差は出ると思いますが、下記の方法で学習を進めていきました。

 

1.まずはVBAを直感的に理解する

自分はそもそもVBAやマクロという言葉すら知らなかったということもあり、まずはVBAやマクロというものを知る必要がありました。

本やネットなんかを色々見たものの、実際にプログラムが動いている様子が見られないからか分かりずらく、言葉で理解しようとせずに、もっと直感的に理解したかったのです。

そこで色々調べた結果、動画による学習が良さそうだったので、Udemyで請求書を1クリックで出力するマクロを作成 を受講し、実際に自分のPCでプログラムを動かしながら学習を進めていきました。

やりたいことは講座の「請求書の出力」ではなかったのですが、実際にビジネスでも有り得そうなシーンではあったので、なんとなくVBAマクロて実現できることについては理解できるようになりました。

 

2.業務フローを描いて整理する

一通りVBAの書き方について理解できたところで、早速実践に進むのですが、いきなり書き始めると混乱しそうだと思い、まずはVBAマクロで実現したいプロセスを簡単に箇条書きで整理しました。

●Excelのファイルを立ち上げる
●もう一方のExcelファイルを立ち上げる
●日付と顧客先が一致するデータを探す
●対象のセルをコピーする
●別のシートに張り付ける
●保存して終了する

正直これを書かなくてもVBAは作れますし、慣れてきたら書かなくてもいいと思いますが、こうすることで作業の手順が明確になり、後は上から順番にVBAに落とし込んでいくだけなので気持ち生産性が上がった気がします。

 

3.マクロに落とし込む

作業フローが可視化出来たら、実際にVBAマクロに落とし込んでいきましたが、ネットやYou Tubeで検索すれば大体出てきました。

例えば「対象のセルコピー+VBA」で検索すると、動画やサイトが出てくるので、後は実際にコードを書いて実行して結果を見るという方法で進めていきました。

VBA独学でのポイントや注意点

実際にVBAマクロを作っていて、気を付けた方がいいこと、効率が良かったやり方をまとめました。

 

1.マクロで使うファイルはコピーを取る

VBAマクロで範囲の指定をミスると、気付かないところのデータが置き換わっていたり、消えたりする可能性があります。

そのまま保存してしまうと取り返しのつかないことになるので、必ずマクロで使うファイルはコピーを作っておき、コピーファイルでテストを実行することが大切だと感じました。

 

2.ブレークポイントを作る

VBAマクロの記述内容が長くなってきたり、読み込み速度の遅いファイルを使っていたりする場合、VBAマクロの実行が完了するまでに結構時間がかかります

マクロにエラーがあると、ぐるぐると回ってフリーズしてしまうこともありますので、ブレークポイントを作り、石橋を渡りながら進めていくことが大切だと感じました。

またマクロが長くなる場合は、Moduleを使ってマクロを幾つかに切り分けておき、別のマクロファイルからCallで呼び出すことでより効率よく作業を進められます。

 

3.ショートカットキーを使う

Excelにショートカットキーが存在するのと同じく、VBAマクロにもショートカットキーが存在します。

全て覚える必要はないと思いますが、例えば「マクロの実行:ALT+F8」、「次のプロセスに進む:F8」といったよく使うものは覚えておくと、生産性が上がります。

 

4.定期的にバックアップ

マクロが悪いのか、自分のパソコンが悪いのかは分からないですが、VBAマクロを実行している途中で、Excelファイルが落ちることがありました。

Excelファイルが落ちることは稀にあることですが、マクロ実行中にファイルが落ちる頻度が多いです。

せっかく記述したマクロが消えてしまうとやる気が削がれますので、定期的に保存しておくことが大切です。

 

5.マクロにパスワードを設定する

VBAマクロファイルにはパスワードを設定することが可能です。

VBAマクロを勝手にいじられてしまうと、データが消えたり、間違ったデータを送信してしまったりと、トラブルの元になりますので実運用を進めるならパスワードを設定しておくことが重要だと感じました。

以上です。

ここ最近ではRPAツールが普及してきたので、VBAを使う人は少なくなってきているかもしれませんが、両方使う自分からすると、VBAの方がサクサクと進むので作業効率は良いんですよね。

※参考:UiPathを独学で学ぶ方法まとめ

Udemy なんかを見ると、他にも色々動画がありますので、検討してみてください。