VBAでPublic変数を使用するときの注意

まずログインして使用するシステムを作成するとき、
「ログイン中」という情報を保持させるのにPublic変数を使用したりします。

主に私はVB.NETで開発することが多く、ログイン画面を作成するときは
この方法を使用します。

以前にAccessのシステムにも同様な方法でログイン画面を作成したのですが、
たまにログイン情報が消えてしまっていることがありました。

ログイン情報は文字通りログインした時にしか書き込まないので、
間違って空白で上書きされることもないはずなので
なぜだろう疑問に思っていたところ
調べてみるとVBAの仕様といことが発覚…
意図しないタイミングで保持していた値が破棄されてしまうそうです。

参考:[VBA]Public宣言された変数の有効期限
https://support.microsoft.com/ja-jp/help/408871

長期間保持して使用することには向いていないようですね。
長いことVb.Netでこの方法を使用していましたが、
そんなことは一度もなかったのでちょっと信じられませんでした。

仕様であるのであれば仕方ないので、
回避方法はいろいろあると思いますが、ここではログイン情報が消えた場合は
ログイン画面を表示して再ログインしてもうらようにしています。

昔からあるVBAですがまだまだ知らない部分がたくさんあるようです。

Share

コメントを残す

メールアドレスが公開されることはありません。 * が付いている欄は必須項目です

Optionally add an image (JPEG only)