自分のVBAコーディングガイドラインを作ろう!その(2) 変数

VBAでプログラミングをするときの、自分なりのルールを整理しています。
引き続き、変数に関するコーディングラインです。

変数の宣言

変数の宣言を強制する

別のページに記載していますが、変数の宣言は強制すべきです。
宣言を強制することで、エラーを防止し、デバッグがやりやすくなるはず。

  • 変数名のスペルミスによるエラーや暴走の防止
  • 変数の型を明確にすることによるエラーの防止

暗黙の型は使わない

型指定をしないとVariant型になりますが、変数の役割が見えづらくなりますので、特に理由がない限りは型を指定をすべきです。
あまり影響はないかもしれませんが、LongのつもりでもVariantにしてしまうと、メモリを食うとか速度がおちると言う人もいます。

スコープはできる限り小さく

原則、変数・定数はプロシージャレベルで宣言をすることで、可読性と安全性が高まります。理由もなくモジュールレベルやパブリックにすると、経験上、エラーの元となり、デバッグも難しくなりがちです。

宣言をするのは、「使用する直前での宣言」「プロシージャ冒頭にプロシージャ内で使用するすべての変数を宣言する」という2通りの考え方がありますが、正直どっちでもいいです。私は後者の方が多いですが、前者の場合もあります。

Integer型は使わない

整数はLong型で統一で問題ないとのこと。
公式でこのように書かれているらしいです。

しかし、最近のバージョンでは、Integer型として宣言されていても、VBAはすべての整数値をLong型に変換します。したがって、Integer変数を使用することによるパフォーマンス上の利点はなくなりました。実際、Long変数はVBAで変換する必要がないため、少し速くなる可能性があります。

つかう数字の範囲を考えて、Integer か Long か、悩む必要がなくなりいいですね。

関連記事