Test5 の別のモジュールでも、やはり Flag の値は Empty で何も入っていないことが分かる。
Test1 から Test3 まで実行しても、B3 の値は A のままである。
Test3 で実行中に Flag の値を見てみると、Empty で値のない状態になっている。
Test2 で Flag を 1 にしたが、Test3 のプロブラムでは、 Test2 の値は受け継がない事が分かる。
Test5 の Flag が 1 になっていることが、B3 に C が記入されたことでわかる。

● それでは、Option Explicit Public Flug As Integer を記入しないと、
  どうなるのかを検証しましょう
Test1 は Flag を 0 にして、B3 にAを記入する。
Test2 は B3 が A なら Flag を 1 にする。
Test3 は Flag が 1 なら B3 に B を記入する。
Test3 の Flag が 1 になっていることが、B3 に B が記入されたことでわかる。
Option Explicit
Pablic Flag As Integer
欄外にこの構文を記入すればよい。この構文の変数はFlagを
使用しているが、変数名は何を使用しても良い。
普通変数は、一つのモジュールで定義しても、他のモジュールではその値を使用することはできない。
だが、一度変数を定義すると、どのモジュールでも、その変数の現在の値を取得することができる定義
方法がある。
 
基本的なマクロの習得
すべてのモジュールに適用される変数定義


実際に使っているシステムの内容で解説
  EXCEL VBA 講座