BACK
2011-02-22

VBのDim宣言で初期化されるのは初回だけ

普通の?言語だと例えばローカル変数を宣言したとして、
その行を再度通るとまた初期化されると思うのですが、
VBでは期待するような動作は行われないようです。

こんな感じに、行内の最大値を得るみたいなのを書いてたときにハマり。
sub hoge()
 for row=1 to rows.count
  dim maxVal as long '誤
  maxVal = 0 '正
  for col=1 to columns.count
   if maxVal < cells(row,col) then
    maxVal = cells(row,col)
   end if
  next
 'なんか処理
 next
end sub
※上はコンパイルしてないので動かないかも

誤だとmaxValの値が下がりません。あば。
VB、やっぱり恐ろしい子。

※追記
なんか調べてたらCintが切り捨てじゃなくて偶数に寄せるとか
デンジャラスなことが書いてある・・・あべえよこれ。
ここ
仕事のソースで使ってないか確かめなくては@@;

BACK