プログラムのさまざまなモジュールの中での、
手続きの
Scope (有効範囲、可視性)。
序文:
手続きは、"subroutine" (sub) または "function" で、手続きの外部のコード(再帰の場合は内部のコード)によって呼び出すことができます。
手続きは、手続き本体を形成する、一連の命令で構成されます。
値または変数を手続きに渡すことができ、関数は値または参照を返します。
説明
モジュール内の手続きの有効範囲は、単純なルールに従います:
- Private scope:
独自のモジュール(定義されている場所)でのみ表示される手続き。
- Public scope:
コンパイルされたプログラム(静的ライブラリを含む)を構成するすべてのモジュールから見える手続き。
- Export scope:
DLL(動的にリンクされたライブラリ)で定義されている場合、それを(静的または動的に)ロードした外部プログラムから見える手続き。
構文
用法
プライベート、パブリック、およびエクスポートのアクセス制御は、手続き定義でのみ使われます(宣言行レベルでは禁止されています)。
デフォルトでは、(モジュール内の)
Option Private 命令文がデフォルト状態を変更する場合を除き、手続きはパブリックです。
そのため、デフォルトの状態に応じて、プライベートとパブリックの両方のアクセス制御が便利です。
エクスポートアクセス制御は、プライベート手続きと互換性がありません(暗黙的または明示的に定義されます)。
コンパイルされたモジュールの中に、2つの手続きが両方プライベートの場合、同じ識別子を持つが異なるモジュール内で定義されて、存在する場合があります。
コンパイラーは、呼び出されていないプライベート手続きを削除します。しかし、それ自体を呼び出していない他のプライベート手続きによってのみ呼び出されるプライベート手続きに対しては、現在動作しません。最初のものが呼び出されているように見えるためです。
参照