モジュールレベル変数の有効性について教えて下さい。 第29回のModule23において、 Dim b As Boolean のモジュールレベル変数は、IsHoliday23でTrueかFalseになったあと 別のSubプロシージャであるExeCreateCalendar23へ戻ってきても TrueかFalseが保持さていました。 私は今まで、同じモジュール内であっても別のSubプロシージャになると変数はリセットされると解釈してましたが、これは間違いだったのでしょうか? これは、オブジェクト型変数にも有効でしょうか? モジュールレベル変数でオブジェクト型変数を設定しておいて、 最初のSubプロシージャでSet~でオブジェクトを指定しておけば 以降、同じモジュール内のSubプロシージャであれば、ずっと有効なのでしょうか?
受講生さんの投稿
(投稿ID: 3908)
第29回のModule23において、
Dim b As Boolean
のモジュールレベル変数は、IsHoliday23でTrueかFalseになったあと
別のSubプロシージャであるExeCreateCalendar23へ戻ってきても
TrueかFalseが保持さていました。
私は今まで、同じモジュール内であっても別のSubプロシージャになると変数はリセットされると解釈してましたが、これは間違いだったのでしょうか?
これは、オブジェクト型変数にも有効でしょうか?
モジュールレベル変数でオブジェクト型変数を設定しておいて、
最初のSubプロシージャでSet~でオブジェクトを指定しておけば
以降、同じモジュール内のSubプロシージャであれば、ずっと有効なのでしょうか?
小川慶一さんのコメント
(コメントID: 5462)
> 私は今まで、同じモジュール内であっても別のSubプロシージャになると変数はリセットされると解釈してましたが、これは間違いだったのでしょうか?
間違いです。
以下の動画からはじめて、第5章をひととおり復習されることをおすすめします。
https://forum.pc5bai.com/lesson/page/227
そもそもなぜモジュールレベル変数を使いたいか?
という質問を持ち、それへの回答を探すつもりで見直してください。
以下の質問については、上記のとおりに復習していただいた上でそれでも僕に確認したいことがあれば、改めてご質問ください。
もっとも、上記のとおりの手順で復習すれば、そのあと、改めて僕にこれを質問する前にご自身でテストコードを作って動作させることでその答えは確認できるかと思いますが。
> これは、オブジェクト型変数にも有効でしょうか?
> モジュールレベル変数でオブジェクト型変数を設定しておいて、
> 最初のSubプロシージャでSet~でオブジェクトを指定しておけば
> 以降、同じモジュール内のSubプロシージャであれば、ずっと有効なのでしょうか?