1. まとめトップ

危うく効率を落としかねないエクセルVBA(マクロ)の落とし穴

エクセルに精通した人の中には、さらなる効率化の手段としてVBAを活用している方も多いことでしょう。現在VBAを使っている方やこれからVBAの導入を考えている方に知っていただきたい落とし穴をご紹介します。

更新日: 2012年09月27日

12 お気に入り 12968 view
お気に入り追加

この記事は私がまとめました

mittimittiさん

■ 関数で出来るのにVBAで作ってしまう
 VBAを使い始めると、なんでもVBAで実現したいと思うようになりがちです。VBAを覚えるため、という目的ならそれでも問題ありませんが、仕事などで必要な処理について、よくよく考えてみると関数で結構簡単に出来てしまうのに、時間をかけてVBAで作りこんでしまった・・・ということもありがちです。VBAで作る前に、「関数でも実現できないか」を考える癖をつけておきましょう。

■ 周りにVBAプログラムを提供するデメリットその1 ・・・ 改変の制限を付ける必要性
 便利なプログラムを組んだら、周りに提供したくなる方もいるでしょう。そんな時、自分用に作ったVBAプログラムを周りの人に提供する際は、かなりの注意が必要です。自分で使うときは、中の作りがすべて分かっているので、関係するエクセルシートに列を挿入するなどの修正を入れた際、VBAも修正が必要だとわかりますが、プログラムの中身を知らない人は、エクセルシートを修正しても当然にVBAはそのまま動くと思い込んでいます。VBAを作ったものを他人に提供する際は、シートの保護などの改変に関する制限をつけるなど、自分だけで使うときには必要のなかった配慮が相当に必要になってきます。

■ 周りにVBAプログラムを提供するデメリットその2 ・・・ いっぱい聞かれる
 他人に提供すると、かならず「質問」がきます。これはどうやって使うのか、こういう場合はどうすればいいのか。ひどい時は、自分流にVBAをアレンジしたいのだが、プログラムをどのように直せばいいのか。ここまで来るとシステムの保守作業のレベルです。そもそも自分の仕事の効率化のために作ったものなのに、自分の仕事が増えて効率が落ちている・・・なんてことにならないように注意しましょう。ちなみに、いっぱい聞かれることを防ぐためには、「聞かなくても分かるような物を作る」という高い技術が必要になります。

バグってる時がある

VBAはプログラムです。プログラムにはバグがつきもの。最悪なのは、バグがある状態だと気づかずに間違った処理を続けてしまうこと。正しく動いているかをきっちり確認できる能力が身につくまでは、複雑な処理を作りこんでしまうと思わぬところで足をすくわれます。

解る人の人事異動や退職でメンテナンスができない

作り込んだVBAを自分以外の人が使う場合、いつかメンテナンスを他の人に引き継ぐ必要が出てきます。自分が書いたコードを引き継ぐのはとても難しいもの。エクセルの関数であれば引き継ぎなしでも大丈夫ですが、VBAではそうはいきません。そういった手間がつきまとうことを忘れてはいけません。

まとめ VBAを作るときのこころがけ

以上のように、VBAは一度覚えてしまえば気軽に作ることができる半面、中途半端に使うと思わぬデメリットに出くわすことがあります。VBAを使うときは、「誰のために」「何のために」作るのか、「どれだけの効果」を生み出せるのかを事前に整理したうえで着手しましょう。

1