Formを読み込むためにグローバル変数が初期化されないようにするには?

解決


フェッセンデン  2003-10-31 08:40:05  No: 109623

標準モジュールでPublic str1 As Stringで宣言しておいてForm1で何かのイベントでstr1="a"にして  何かのタイミングでForm2を開いて  str1を参照すると str1=""になってしまうのですがどうしてでしょうか?
ちなみに、そのプロジェクトだけで他のプロジェクトでは問題ないのです。
もちろん他のFormが読み込まれると str1=""にするという事はしていません。


魔界の仮面弁士  2003-10-31 08:57:22  No: 109624

VB6であれば、[デバッグ]-[ウォッチ式の追加]を使って、

  式: str1
  対象プロシージャ: (すべてのプロシージャ)
  対象モジュール: Module1
  ウォッチの種類: 式の内容が変化した時に中断

のように設定してデバッグしてみては。


red-fish  2003-10-31 09:05:20  No: 109625

多分、
・同名の変数をより狭いスコープで定義されているか
・Option Explicitを宣言せずに"str"と"srt"とタイプミスしている
のどちらかだと思います。

まずOption Explicitを宣言していないなら宣言しましょう。
それで、デバッグで値が変化したときに中断させるというのが
ありますから、それを利用しましょう。
それでダメなら現象が再現するまで、コードをコメントアウトして
絞り込んでみましょう。
それでも解決しないなら、そのコードをココへUPしてみましょう。


フェッセンデン  2003-10-31 09:43:55  No: 109626

解答ありがとうございます。  まことに情けないことに
・同名の変数をより狭いスコープで定義されている
という事に大ヒットしました。時間掛けてデバックしていておかしいな?と思っていたのに本当にあほらしいミスでした。


※返信する前に利用規約をご確認ください。

※Google reCAPTCHA認証からCloudflare Turnstile認証へ変更しました。






  このエントリーをはてなブックマークに追加