VBAは便利ですが、いいことばかりではありません。

導入してから「こんなはずじゃなかった」と後悔しないために、先に弱点を知っておきましょう。

この回では、VBAの7つのデメリットとその対策、そして今の手作業を安全にVBAへ移すための手順を紹介します。

VBAの導入を考えている方は、ぜひ読んで下さい!


まず、デメリットも受け入れる

便利さばかりが目立つExcelVBAにも、見落としがちな弱点があります。

VBAで自動化したくなった方も、デメリットを受け入れられるかを、一度考えてから導入しましょう。

対策もあわせて紹介します。


弱点1:既存のマクロの改修が大変

コードの書き方には、書く人の癖が出ます。

Aさんは、処理の内容が伝わるようコメントをきちんと添えますが、Bさんはコードを書くだけ、ということがよくあります。

Aさんのように、誰が見ても分かるコードなら、改修もそれほど難しくありません。

ところが残念ながら、実際にはBさんのような書き方のほうが多いのです。

他人が書いたコードを直す作業ほど、手間のかかるものはありません。

私も、退職した方が作ったコードを見たことがありますが、書き方に癖があり、読み解くのに苦労しました。

すでに現場にいない方が書いたコードは、修正箇所を特定するより、最初から書き直したほうがよいケースも、意外と多いです。

対策は2つです。

ツールの利用マニュアルを用意すること(使い方や、エラーが出たときの対応法をまとめておけば、新入社員や担当者が替わったときも安心です)。

そして、分かりやすいソースコードを書くこと(コメントで説明文を入れると、誰が見ても分かりやすくなります)。


弱点2:VBAを使える人が少ない

私は、これまで事務職などの仕事でExcelを使ってきました。

個人事業の経費を整理するときもExcelです。

ただ、VBAを仕事で使い始めたのは、ごく最近です。

それ以前にも独学を試みましたが、続きませんでした。

Excelを使える方は多くても、VBAを使える方は、そこまで多くありません。

VBAを使える社員が1人だけだと、その人が休むと、改修ができなくなります。

だからこそ、VBAは穴場だと言われるのですが……。


弱点3:仕事として理解されにくい

日本人は、とても勤勉です。

その反面、他人に仕事を任せることが、他の国の方より苦手です。

この「他人」には、VBAのような自動化ツールも含まれるため、日本人は自動化に抵抗を感じやすい、ということになります。

あなたの職場にも、「自分の手でこつこつ仕上げてこそ仕事」という昭和の美徳を大切にしている、年配の方はいませんか?

VBAなら、手作業で何時間もかかる作業が、ワンクリックで一瞬で終わります。

本来なら「時間を短くしてくれてありがとう」と感謝されるはずなのに、「手抜きだ」「自分だけ楽をしている」と皮肉を言われることもあります。

非効率な働き方を美徳とする会社なら、退職届を出すのも一つの選択肢かもしれません……。

私も過去に、そんな会社に勤めていた経験があります。

もちろん、何でもVBAに任せられるわけではありません。

お金が絡むことは、人間とのダブルチェックも大切です。

人とVBAが共存できる職場が増える日を、楽しみにしています。

仕事の内容によっては、手作業のほうがよい場合もあります。

それでも、下書きやラフ程度なら、生成AIに任せたほうが効率的です。


弱点4:学習に時間がかかる

VBAのコードをChatGPTに書いてもらうこと自体は、誰にでもできます。

しかし、そのコードがどんな処理をしているかは、VBAの知識がない方には、すぐには分かりません。

ChatGPTにコードを出してもらう場合でも、自分でVBAを勉強する必要があります。

あとで説明する「エラーハンドリング」ができないと、ツールを作れても、改修や改良ができないからです。

ただ、仕事の合間に勉強しただけの私でも、半年ほどである程度は分かるようになりました。

難関資格のように勉強時間を取られることはありません。

仕事の合間や、自宅で時間が取れるときに、少しずつ学んでみましょう。


弱点5:セキュリティ上のリスクがある

自分で作ったVBAツールなら問題ありませんが、ネットで手に入れたツールには、悪意のあるコードが入っている場合もあります。

実行した瞬間にシステムが落ちたり、機密情報が盗まれたりするおそれもあります。

ただし、ChatGPTは違法な依頼や不適切な質問には答えない仕様なので、悪意のあるツールを知らないうちに作ってしまうことはありません。

よい機会なので、VBAツールがセキュリティにどう影響するのかも、学んでみましょう。


弱点6:エラーハンドリングが難しい

エラーハンドリングとは、想定外の状況やエラーが起きたときにも、プログラムが安定して動くようにしておく処理のことです。

例外処理やエラーメッセージの表示といった知識がなければ、組み込めません。

VBAツールは、作って動いたら終わり、というものではありません。

誤った操作をしたときや、プログラムに不具合があったときに、適切に処理できるように作る必要があります。

そのためにも、VBAの知識を身につけておく必要があるのです。

ツールが安定するまでは、1つの処理をするごとにメッセージを表示させておくと、エラーハンドリングがやりやすくなります。

多くの場合は会社で使うことになるので、ツールができたら、上司や先輩、後輩に使ってもらい、意見をもらいましょう。

ただし、自分の裁量で進められる仕事にだけ使うなら、誰にも見せなくて構いません。

VBAでの自動化を快く思っていない方も多いからです。

最終的に自分が責任を負えるのであれば、積極的にVBAを活用しましょう。


弱点7:Pythonに置き換わる可能性

断言はできませんが、VBAがPythonに置き換わっていく可能性もあります。

いまでもVBAの案件は数多く募集されているので、気にしすぎる必要はないと思います。

ただ、将来どうなるかは分かりません。

VBAとPythonの両方を身につけておけば、安心です。

これからは、複数のスキルを持つ人が有利になる時代です。


今の仕事をVBAに移行する進め方

使い方しだいでVBAが便利だということは、お分かりいただけたと思います。

とはいえ、「すぐ使いたいけれど、今の仕事をいきなり自動化するのは難しい」という方も多いでしょう。

私の経験を踏まえて、いま手作業で行っている仕事をVBAによる自動化へ移す手順を、説明します。


ステップ1は、手動とVBAの両方で検証すること(1〜2週間)です。

自分の業務を、手作業とVBAの両方で実行し、データに違いがないことを確かめます。

上司の依頼を受けている仕事なら、上司にもチェックしてもらいましょう。

そうすれば、VBAで自動化しても問題ないことを、理解してもらえます。

ただ、年配の方やパソコンが苦手な方には、理解してもらうまで時間がかかるかもしれません。

その場合は、強引にVBAへ移行しようとせず、力強く説得していきましょう。

失礼な言い方になりますが、考えが古い方は、アナログがいちばん、パソコンを使うにしても手作業がいちばん、という考えが強いです。

今は変化が激しい時代になっていること、業務効率化が必要であることを説明して、訴えていきましょう。


ステップ2は、手動とVBAのどちらで作業するか決めること(2〜3週間)です。

何でもVBAでやればよい、というわけではありません。

手作業のほうが速い場合も、十分にあります。

次の段階は、自動化しようとしている仕事を、本当にVBAで自動化するかどうかを決めることです。

判断の目安は、作業の重要度(売上や品質に影響するか)、客先へ提出するデータかどうか、処理時間(手作業のほうが速いこともある)です。


ステップ3は、ChatGPTとVBAでコードを書くことです。

VBAで自動化すると決めたら、さっそくコーディングします。

会社でChatGPTにログインできるなら、そのままChatGPTでコードを作りましょう。

ただし、個人情報や会社名、取引先名、プロジェクト名は、絶対に入力しないで下さい。

「個人情報や機密情報は、最初から入力しない」という姿勢を貫いて下さい。

ChatGPTでVBAツールを作るときは、あらかじめ職場のチームに一言伝えておきましょう。

理解されないことも多いでしょうが、そこは粘り強く説明して下さい。