最近は、人様の書いたVBAマクロの修正を頼まれることが増えてきています。担当者が会社を辞めていたり、偉くなったりして誰かがその尻拭いをしなければいけません。
で、最近ではその面倒事がわたしの所に舞い込むことが多いのです。そして、このような愚痴を投稿することがふえてきました。
スポンサーリンク
コンパイルすら通していないマクロ
VBAはスクリプト言語ですので、マクロに不具合があっても実際にそのスクリプトが処理されなければユーザーはエラーに気づきません。
そして今回、わたしの所にVBAのコンパイルすらまったくしたことがないであろう(書いた本人にはコンパイルするという発想もなければ機能もしらない)VBAマクロがやってきました。
そして、実際にコンパイルをすると、エラーの箇所が全部で30以上ありました。イライラ通り越しています。今回、いままで通らなかった処理が初めて実行されてしまったのでしょう。コンパイルエラーの箇所で処理が停止しています。
面倒でしたがコンパイルエラーをつぶして動作させることができました。ただし、機械的にコンパイルエラーをつぶしただけなので、マクロが何をやってるかはまではわかりません。
動作確認は使いたい本人してもらって出番は終了です。
ポイント:
- VBA書いたら必ずコンパイルしろ!反論は聞かない。
ついでにVBAができるようになりたいと思っている初心者の方に忠告しておきます。
VBAなら誰でもできる
先に断言しておきます。多くのVBA教室やセミナーのサイトなどで、「VBAなら誰でもできる」的な売り込みで(特に初心者を)集客していますが、「VBAマクロは誰でもできるか」と聞かれると、間違いなく「誰でもはかけません。」と答えます。
「他人の書いたマクロが手に取るようにわかるようになりました」(受講者の声)」
嘘です。わかりません。カオスであることが多いです。そもそも設計書を書いて保守するという意識はなく、自分がその時だけ使えればいいという人向けのセミナーなどではないかと想像できます。
そして、あなたの作ったエクセルマクロが万が一にも、同僚などに「便利だわー。わたしも使うわー」ということがあるかもしれません。
そう、不幸の始まりです。
あなたが会社を辞めたとき、転勤になったとき、そのマクロはどうなるでしょうか。誰もメンテナンスできない厄介者に早変わりです。
- エクセルのバージョンが上がったら動かなくなった
- 64ビット版のエクセルでは動かない
- 自称マクロできる人がちょっと直したら計算結果がおかしくなった
- etc…
ポイント:
- あなたは一時は評価されるかもしれない。しかし、あなたがメンテし続けることができるわけではない。
- ワークシート関数を駆使して、データの整理、解析、評価などを行える人のほうが業務には役立つことでしょう。(特に事務が)VBAマクロまで書く必要はない。反論は聞かない。
では、愚痴おわり。