VBA Public変数に振り回される

 騎兵突撃フェーズのVBAマクロを作成している時にPublic変数が

途中でリセットされる現象になり、対策に振り回された。

マクロ間でパラメータを共通して使う為にPublic変数を使ったが、

まさかリセットされる事があると思っていなかった・・・。

Microsoftの下記ページを読むと、使えない・・・印象を受ける。

 ・[VBA] Public 宣言された変数の有効期間

 

 今回のバタイユゲーム支援ツールを作る場合、基本的にはボタンを

押されてから結果が出るまでは一連の流れなので問題はない。

しかし、現在のフェーズは、一度処理が終了した後も士気2シートで

参照する必要がある。そこで、士気2シートのセルに書き込んでおき、

使う場合に取り込むように処理を変更した。

 

<個人的な感想>

 良く理解もせずに使った方が悪いのだが、仕事で使っていたシステムではGLOBAL変数は

勝手にリセットされる事はなかったので、その思い込みがあった。しかし、下記のような

腰の引けたような仕様は、何だかPublicの意味がないような・・・。Local変数と変わらない。

【Public 変数の値が有効である期間は、あるプロシージャの実行を開始し、そのプロシージャが

“End Sub” で終了するまでの間のみ有効】

 

<リンク>

ブログのトップページは、こちら

バタイユゲーム情報班のホームページは、こちら