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ツールを作るときは、あらかじめ職場のチームに一言伝えておきましょう。
理解されないことも多いでしょうが、そこは粘り強く説明して下さい。