マクロ(VBA)請負開発でやり直しになりやすいポイントとその対策
この記事では、エクセルVBAの請負開発でやり直しになりやすいポイントとその対策を紹介します。
こんな人に向けた内容です。
- 逆戻りしないコツが知りたい
- 何度も作り直して嫌になったことがある
- エクセルVBAの請負開発をしている
私のVBAの経歴は全部9年ほどで、今は会社の業務としてVBAの請負開発をしています。
- 大学の研究室時代:見よう見まねで2年間
- 自分の仕事の自動化:5年間
- 請負開発:2年間
請負開発をする中で何度か大規模な修正をしたこともあり、今回はその原因と対策を紹介しようと思います。
やり直しになる原因:データの規則性がわからない
私の経験では、やり直しになる原因は処理したいデータの規則性がわからないためです。
VBAでできるのは、基本的にはデータを加工(計算)することです。
つまり、次の3つのことを行います。
- 何かしらのデータをインプットして
- 計算をして
- アウトプットする
私の経験上、面倒なやり直しに繋がるのは2.の計算の部分です。
貰ったサンプルデータだとうまく計算できるのに、他のデータで試すとうまくできない、と言われます。
調べてみると、セルの位置が微妙に違っていたり、数値が想像を超えた値になっているのです。
規則性はサンプルデータから想像している
VBAの開発をするとき、データの規則性(どのセルにデータがあるのか、どんな数値が入っているのか)はサンプルデータから想像して決めています。
つまり、具体的なサンプルから規則性を想像しているわけです。
あなたがサンプルから想像した規則性が合っていれば良いのですが、そうで無ければエラーの原因となります。
理想的な対策は、どのセルに何のデータが含まれるのかルールを教えてもらうことです。
ルールが分かれば、無駄なエラーに悩まされることもありません。
しかし、実際のところ機械が作ったデータで無ければ完璧なルールを把握するのは困難です。
そうした場合は、工夫をすることでやり直しを回避していきましょう。
対策①:データサンプルをたくさん入手
1つ目の対策はデータサンプルを可能な限りたくさん入手することです。
具体的なデータから規則性を把握するにしても、数が多ければ多いほど、イレギュラーな規則性に気付きやすくなります。
深く考えず、依頼者に大量のサンプルデータを要求しましょう。
対策②:基準セルを定数にしておく
もう1つの対策は、VBAを変更しやすくしておくことです。
特に基準セルの位置(行・列)は数値ではなく、定数にしておきましょう。
数値で直書きしていると、あとから基準位置の違うデータが出てきたら大変です。
定数にしておけば、変数に変えて、最初にデータに応じて場合分けすれば済みます。
変数名を考えるのが手間ですが、規則性が怪しいデータを扱うときは保険をかけておいて損はないと思います。