ExcelVBAで変数のエラーが出る。引数で定義し直したり、「Publicステートメント」で宣言して「パブリック変数」としても、なぜかエラーが消えない。エラーが消えても何か納得いかない場合がありませんか?もしかすると、根本的に変数の宣言に間違いがあるかもしれません。Fortrunに慣れている人にありがちな間違いについての注意喚起です。
Dim i , j As longの意味は?
変数は、”Dim 変数名 As データ名” で定義していると思いますが、”As データ名” を省略できます。省略した場合は ”Variant” として認識されます。”Variant” は何でも使用可能なので、特に問題が発生しない場合が多くあります。ここで大切なこと、Fortranに慣れた人が勘違いしがちなことがあります。それは、
- ”変数名 As データ名”を“ひとかたまりとして定義する“必要がある!
ということです。
たとえば、Dim i , j As long とした場合、i は Variant 型、j は long 型と認識されます。i も j も long 型として定義する場合には、
- Dim i As long , j As long
と定義する必要があります。
Fortranでは変数の型を宣言して、その後に変数を列挙すれば良かったわけですが、ExcelVBAでは要注意です。
コメント