MS Officeで役立つVBAの技:これだけは覚えとけ!
翻訳校正:村上雅章・野崎裕子
ユーザー部門に対してVBAの教育を行うことで、彼ら自身でちょっとした業務の自動化を行えるようになり、IT部門とユーザー部門の両者にメリットがもたらされる。本記事ではそういった教育に欠かせないコーディング上のベストプラクティスを解説している。
ユーザーを教育し、彼ら自身でちょっとしたコーディングを行えるようにすることで、彼らからの開発要求を減らすことができるようになるだろう。Visual Basic for Applications(VBA)は学習の容易なプログラミング言語であるため、コーティング経験のないユーザーに教える言語としてお勧めだ。また、VBAを用いることで作業を自動化したり、Microsoft Officeの通常の機能では実現できないようなことも実現できるようになる。
以下は、効率の高いVBAコードを記述できるレベルにまでユーザーを導いていこうという場合に力を入れておくべき、プログラミング上の7つのベストプラクティスである。
Option Explicitステートメントを各モジュールに追加する
熟練開発者であったとしても、ちょっとしたタイプミスをやらかしてしまうことがあるはずだ。こういったことを技術的に避けるには、各モジュールにOption Explicitステートメントを追加することだ。
Option Explicitステートメントを用いることで、VBAは参照されている変数が実際に宣言されていることを確認するようになる。これについては、ちょっとした例を挙げることでユーザに示すことができる。VBAは、宣言されていない変数を発見すると、図Aに示すように、非常に明確なかたちでその問題を指摘する。つまり、変数をハイライトさせ、何が悪いのかを具体的に告げてくれるのだ。この例では、参照されている変数名のスペルが誤っている(宣言はImgCounterであるものの、参照はIgmCounterになっている)。
Option Explicitステートメントを用いることで、宣言されていない変数を、問題が引き起こされる前に発見することができる
Option Explicitステートメントを指定していなければ、この関数が期待した結果を返してこなかったとしても、ユーザーは問題を特定できない可能性がある。また、さらに悪いことに、ユーザーは過ちがあることにすら気付かない可能性もある。図Bに示すように、Option Explicitステートメントをコメントにすると、VBAはおかしな値を返すようになる。この場合、Long型のデフォルト値は0であるため、結果が0となっている。この手の過ちは、熟練開発者であっても見つけにくいものなのだ。
Option Explicitステートメントをコメントにした場合、予想されている読者の方もいるように、宣言されていない変数があるというエラーは返ってこないようになる
Microsoft Office 97以降、Option Explicitステートメントはデフォルトで有効となっている。この機能が無効にされている場合、以下の手順で有効にすることができる。
- Visual Basic Editor(VBE)の[ツール]メニューから[オプションを]選択する
- [編集]タブをクリックする
- 「コードの設定」セクションにある[変数の宣言を強制する]をチェックする
- [OK]をクリックする
ユーザーに対しては、誤ったデータや、デバッグしにくいタイプミスを防ぐためのOpen Explicitの使用方法とともに、Option Explicitを有効化しておくように教えておこう。
- 9人の推薦記事
- 0人がクリップ
-
ソーシャルブックマーク(-)
- トラックバック(1)
- ホワイトペーパー
- 話題のタグ
無料の「Oracle Database XE」で高速バッチ処理:実装のポイント
Firefoxで情報をカンタン・ベンリに整理する
iPhone Safari、Acidテストでは高得点でも…… Firefoxは載らないの?:WebサイトのiPhone 3G対応問題を考える(ソフト編)
WebサイトのiPhone 3G対応問題を考える(ハード編)
フォトレポート:時代を振り返る--「MS-DOS 4」のインストール
SOAと仮想化の関係は?--常に進化を続けるBEAのミドルウェア戦略
ウェブ開発の生産性はどうしたら上がる?--MODIPHI Appsで半日で作るマッシュアップサイト(1)
JailBreakついに:PwnageTool公開
プロジェクトの進行でよくある4つのトラブル
iPhoneに付く指紋が…… ひとまずおすすめのシリコンケース
contentプロパティでコンテンツを追加する(2):FirefoxとSafariのCSS
iPhone 24時間耐久レース:バッテリーは実際何時間?
フォームデザイン虎の巻:フォームの基礎をおさえる
DELLが掲げる「新・仮想化アセスメントサービス」
ZDNet Japan ホスティング特集
ZDNet Japan Green IT
Techno Exchange