[[20040120084624]] 『Dim...As...の意味』(マクロ初心者) ページの最後に飛ぶ

[ 初めての方へ | 一覧(最新更新順) | 全文検索 | 過去ログ ]

 

『Dim...As...の意味』(マクロ初心者)

Dim ・・ As・・・について

みなさんが作っておられるマクロには、変数の定義で「Dim ・・ As・・・」が最初に書かれてあります。マクロについて書かれた本にも、必ず記載されています。ただ、これを表示しなくてもマクロ自体は動くと思うのですが、「Dim ・・ As・・・」を省略したら困るような事は、具体的にはどのようなケースがあるのでしょうか。


 変数が全てvariant型としてみなされるので、
 メモリ(リソース)の無駄使い、処理速度低下、誤動作の原因
 となります。

 VBEのオプション設定で、「変数の宣言を強制する」にチェックをすると、
 Option Explicit が自動的に記入されます。
 これがあると、宣言されていない変数があるとエラーになります。 
 その為、これがないと変数名を間違えても、variant型として宣言していると
 みなされて、エラーにならないのでデバッグするのに手間がかかります。

 私は変数の宣言されていないプログラムは、見る気にもなりません。

  (INA)


 データ型変数宣言を省略すると、Variant型として変数が扱われるようになります。
 As以降を省略しても同様です。
 この場合、VBで扱えるデータはたいてい格納できてしまいます。
 ということは、意図していないデータを格納しても気がつかないケースがでてきます。
 たとえば、Rangeオブジェクトを変数に格納するためには

 Set mr = Range("A1:B12")

 などとSetステートメントで記述する必要がありますが、
 誤ってオブジェクト方のつもりで

 mr = Range("A1:B12")

 などとしても、セルの値(配列)だけは格納できるのでそのときは気がつきません。
 どんなデータ型でも格納できるということは、現在その変数が
 どんなデータを格納しているかがわかりにくくなるということでもあります。

 私の場合は、「この変数はこのデータ型を格納するんだ!」
 ということを意識するために宣言しとくものだと思っています。
 あとで見直したときに変数が宣言されているとわりと処理の流れが
 追跡しやすいというのもありますね。
 (KAMIYA)

コメント返信:

[ 一覧(最新更新順) ]


YukiWiki 1.6.7 Copyright (C) 2000,2001 by Hiroshi Yuki. Modified by kazu.