標準モジュールでPublic str1 As Stringで宣言しておいてForm1で何かのイベントでstr1="a"にして 何かのタイミングでForm2を開いて str1を参照すると str1=""になってしまうのですがどうしてでしょうか?
ちなみに、そのプロジェクトだけで他のプロジェクトでは問題ないのです。
もちろん他のFormが読み込まれると str1=""にするという事はしていません。
VB6であれば、[デバッグ]-[ウォッチ式の追加]を使って、
式: str1
対象プロシージャ: (すべてのプロシージャ)
対象モジュール: Module1
ウォッチの種類: 式の内容が変化した時に中断
のように設定してデバッグしてみては。
多分、
・同名の変数をより狭いスコープで定義されているか
・Option Explicitを宣言せずに"str"と"srt"とタイプミスしている
のどちらかだと思います。
まずOption Explicitを宣言していないなら宣言しましょう。
それで、デバッグで値が変化したときに中断させるというのが
ありますから、それを利用しましょう。
それでダメなら現象が再現するまで、コードをコメントアウトして
絞り込んでみましょう。
それでも解決しないなら、そのコードをココへUPしてみましょう。
解答ありがとうございます。 まことに情けないことに
・同名の変数をより狭いスコープで定義されている
という事に大ヒットしました。時間掛けてデバックしていておかしいな?と思っていたのに本当にあほらしいミスでした。
ツイート | ![]() |