ExcelVBAのDimの定義に注意!変数のエラーが出る場合は変数の宣言に問題があるかも?

プログラミングの勉強

 

 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では要注意です。


コメント

タイトルとURLをコピーしました