Privateステートメントで宣言されたSubプロシージャとFunctionプロシージャは
プロシージャを記述したモジュール内のほかのプロシージャからのみ参照できます。
これに対して、Publicステートメントで宣言されたSubプロシージャとFunctionプロシージャは
すべてのモジュールのすべてのプロシージャから参照できます。
図ではModule1のMainProよりModule2のPro1とFunc1を参照しようとしていますが、
Pro1とFunc1はPrivateなのでエラーとなります。
ステートメントを指定しないと自動的にPublicプロシージャとなります。 では、どうしてステートメントが必要なのでしょうか? これは目的によりプロシージャの参照を制限したり、開放したりする理由もありますが、 1番の理由は、モジュールが増えた場合、プロシージャがモジュール内だけで参照されているのか それともモジュール外からも参照されているのかを明確にする為です。 プログラムを復数人で開発をしたり、解析する場合、プログラムの規模が大きいほど ステートメントを指定することが重要となってきます。