騎兵突撃フェーズのVBAマクロを作成している時にPublic変数が
途中でリセットされる現象になり、対策に振り回された。
マクロ間でパラメータを共通して使う為にPublic変数を使ったが、
まさかリセットされる事があると思っていなかった・・・。
Microsoftの下記ページを読むと、使えない・・・印象を受ける。
今回のバタイユゲーム支援ツールを作る場合、基本的にはボタンを
押されてから結果が出るまでは一連の流れなので問題はない。
しかし、現在のフェーズは、一度処理が終了した後も士気2シートで
参照する必要がある。そこで、士気2シートのセルに書き込んでおき、
使う場合に取り込むように処理を変更した。
<個人的な感想>
良く理解もせずに使った方が悪いのだが、仕事で使っていたシステムではGLOBAL変数は
勝手にリセットされる事はなかったので、その思い込みがあった。しかし、下記のような
腰の引けたような仕様は、何だかPublicの意味がないような・・・。Local変数と変わらない。
【Public 変数の値が有効である期間は、あるプロシージャの実行を開始し、そのプロシージャが
“End Sub” で終了するまでの間のみ有効】
<リンク>