MS Officeで役立つVBAの技:これだけは覚えとけ!

文:Susan Harkins(Special to TechRepublic) 翻訳校正:村上雅章・野崎裕子
2008-02-18 08:00:00
  • このエントリーをはてなブックマークに追加

 ユーザーを教育し、彼ら自身でちょっとしたコーディングを行えるようにすることで、彼らからの開発要求を減らすことができるようになるだろう。Visual Basic for Applications(VBA)は学習の容易なプログラミング言語であるため、コーティング経験のないユーザーに教える言語としてお勧めだ。また、VBAを用いることで作業を自動化したり、Microsoft Officeの通常の機能では実現できないようなことも実現できるようになる。

 以下は、効率の高いVBAコードを記述できるレベルにまでユーザーを導いていこうという場合に力を入れておくべき、プログラミング上の7つのベストプラクティスである。

Option Explicitステートメントを各モジュールに追加する

 熟練開発者であったとしても、ちょっとしたタイプミスをやらかしてしまうことがあるはずだ。こういったことを技術的に避けるには、各モジュールにOption Explicitステートメントを追加することだ。

 Option Explicitステートメントを用いることで、VBAは参照されている変数が実際に宣言されていることを確認するようになる。これについては、ちょっとした例を挙げることでユーザに示すことができる。VBAは、宣言されていない変数を発見すると、図Aに示すように、非常に明確なかたちでその問題を指摘する。つまり、変数をハイライトさせ、何が悪いのかを具体的に告げてくれるのだ。この例では、参照されている変数名のスペルが誤っている(宣言はImgCounterであるものの、参照はIgmCounterになっている)。

図A 図A Option Explicitステートメントを用いることで、宣言されていない変数を、問題が引き起こされる前に発見することができる

 Option Explicitステートメントを指定していなければ、この関数が期待した結果を返してこなかったとしても、ユーザーは問題を特定できない可能性がある。また、さらに悪いことに、ユーザーは過ちがあることにすら気付かない可能性もある。図Bに示すように、Option Explicitステートメントをコメントにすると、VBAはおかしな値を返すようになる。この場合、Long型のデフォルト値は0であるため、結果が0となっている。この手の過ちは、熟練開発者であっても見つけにくいものなのだ。

図B 図B Option Explicitステートメントをコメントにした場合、予想されている読者の方もいるように、宣言されていない変数があるというエラーは返ってこないようになる

 Microsoft Office 97以降、Option Explicitステートメントはデフォルトで有効となっている。この機能が無効にされている場合、以下の手順で有効にすることができる。

  1. Visual Basic Editor(VBE)の[ツール]メニューから[オプションを]選択する
  2. [編集]タブをクリックする
  3. 「コードの設定」セクションにある[変数の宣言を強制する]をチェックする
  4. [OK]をクリックする

 ユーザーに対しては、誤ったデータや、デバッグしにくいタイプミスを防ぐためのOpen Explicitの使用方法とともに、Option Explicitを有効化しておくように教えておこう。

  • 新着記事
  • 特集
  • ブログ