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

文:Susan Harkins(Special to TechRepublic)
翻訳校正:村上雅章・野崎裕子
2008/02/18 08:00

ユーザー部門に対してVBAの教育を行うことで、彼ら自身でちょっとした業務の自動化を行えるようになり、IT部門とユーザー部門の両者にメリットがもたらされる。本記事ではそういった教育に欠かせないコーディング上のベストプラクティスを解説している。

名前付け規約を決め、それに従う

 名前付け規約とは、オブジェクトや変数の名前を付ける際に用いる一連の規則である。この記事はVBAについてのものであるため、変数名に焦点を当てることにする。変数名は、データ型やその使用目的を明確にするものとなっていなければならない。

 ユーザーは、名前付け規約を面倒でどうでもよいものとして無視しようとするかもしれない。しかし、一貫した名前付け規約を使用するというプラクティスを実践することにより、以下のような理由でコードの取り扱いが楽になるということを彼らに教えておくべきである。

  • 変数名からその変数に関する多くの情報が読み取れるようになるため、コードの詳細すべてを記憶しておく必要がなくなる。
  • 誰かのコードを他人がより容易に読み下したり、修正することができるようになる。
  • 一貫した名前付け規約に基づいて命名された変数は、それ自体がドキュメントとなるため、何カ月も前に記述したコードでも容易に修正できるようになる。
  • 意味のある変数名が使用されている場合、問題の特定が容易になる。

 例えば、Variable1やvalue2といった変数名は、その変数の目的について何のヒントも与えてくれない。対照的に、FirstNameやLastName、StreetNameといった変数名は説明的であり、意味を持っていると言える。変数の目的を明らかにできたのであれば、変数のデータ型も示しておくようにしよう。ほとんどのVBA開発者は、objやstr、lng、intといった3文字からなる接頭辞を好んで付加している。例えば、FirstNameやLastNameはstrFirstNameやstrLastNameとなるわけだ。こういった例では変数名にNameが含まれているため、変数の値は文字列であると判断でき、接頭辞は不要であると思われるかもしれないが、データ型を表す接頭辞の付加という習慣はユーザーに推奨しておくべきだ。また、変数名には大文字と小文字の双方が使用されており、変数名を構成する各単語が大文字で始められているという点にも注意されたい。こういった記述法はキャメル記法として知られており、可読性を向上させるためのものだ。さらに、省略形はたとえ意味が明白な場合であっても使わないよう、ユーザーにアドバイスしておこう。

 名前付け規約にはさまざまなものがある。会社が名前付け規約を定めていない場合、ユーザー側で独自に簡単な規則を定めておくことができる。名前付け規約自体は、その重要性をユーザーに納得させることほど重要な問題ではないのだ。

 Microsoftのこのサイトでは、名前付け規約とVBA接頭辞に関するより詳細な解説が提供されている。

適切なコメントを付加する

 コメントは、コードを記述してから何カ月も経ち、そのコードを記述した理由を思い出せないという時に貴重なものとなる。例えば以下のコメントは、関数の目的を定義するという素晴らしい役目を果たしている。

' This function reduces product price by a predetermined discount.(この関数は、あらかじめ決められた割引率に基づいて商品価格を下げるものである)

 このコメントがなければ、コードの解読で時間を無駄にしてしまうことだろう。

 ユーザーが意味のあるコメントを効率的に記述するうえで参考になるガイドラインを以下に挙げる。

  • 手続き(FunctionとSubの双方)の冒頭には、その目的を概説するコメントをできるだけ付加するようにする。このコメントは簡単な概要でよい。手続きが1〜2行しかない場合には通常、コメントは不要である。
  • 手続き中のステートメントにいちいちコメントを付加しない。ほとんどの関数や式はそれ自体を読めば意味が判るはずだ。
  • 一般的な規約から解釈できないものについてはコメントを付加しておく。
  • コメントを記述する際には、句読点を適切に用い、正しい文法で記述する。あなたにとって明確に思える言葉遣いでも、他の人にとっては紛らわしいものとなっているかもしれない。
  • 長い手続きの場合、複数のコードが持つ意味のまとまりごとにコメントを付加しておくと有効である。ただし、必ずしも付加しなければならないというわけではない。
  • 修正や機能強化を行った場合にもコメントを付加しておく。その場合、修正担当者の名前と修正日付も記述しておく。
記事に関係する情報をコメントでお寄せください

ニックネーム : CNET_IDにログインしてコメントする

コメント本文(必須) :
  • 今日のトップ記事
  • 2日前
  • 3日前
  • 6日前
  • 7日前
  • 新着記事
  • 人気記事
  • 特集
  • ブログ