質問させていただきます。どうぞよろしくお願いいたします。 環境:Win7 SP1 64Bit エクセル2010 SP2 32bit でございます。 【現象】 下記のコードを実行後、再実行するとなぜか最初からB_Num = 3 になっております。 VBAの場合は明示的に初期値を入れないでも自動で初期化されるものと思っておりましたが、 「プログラム再実行時に確実に変数が初期化されている」ようにする事は可能でしょうか? Public B_Num As Integer Sub test() If B_Num > 0 Then Stop For iii = 1 To 3 B_Num = B_Num + 1 Next End Sub 【検証内容】 ・ コード実行 →(End Subまで行って終了) →再実行 →3が残っている。 ・ コード実行 →(End Subまで行って終了) →終了している状態で、無意味そうですが、エディタの「リセット」ボタン(四角形)を押す。 →再実行 →何故か値が0に初期化される。 ・上記「リセット」ボタンの代わりに「デザインモード」ボタンを押す。 →同じく値が0に初期化される。 ・ThisWorkBook内、Module1内、どちらに記述しても同じ現象になる。 検索しておりましても「Public変数の値が消えてしまう」という記事はいくつかありましたが 「消えずに残っている」というものを見つけることができませんでした。 (「C言語の場合は初期値が不安定なことがあるので明示的に初期化しないといけない」という記事はありましたが。。。) どうぞよろしくお願いいたします。
↧