プロシージャのそれぞれの書き方によるスコープ(適用範囲)とモジュールの各種類について記載 標準モジュールに記述した場合 1.標準モジュール: 1.パブリック変数:Endステートメント(終了時)またはモジュールに変更を加えた際に初期化 ・標準モジュール「.bas」
プロシージャの適用範囲
1.頭にPublic とつけるか、何もつけない → 全てのモジュール・プロシージャから呼び出せる
2.頭にPrivateとつける → 記述しているモジュール内のみで使用が可能、ほかのモジュールから呼び出すことはできない
標準モジュール以外に記述した場合
頭にPublic とつけてもつけなくても、ほかのモジュールのプロシージャから呼び出すことはできないモジュールの種類
→標準モジュールに格納したプロシージャは、Privateキーワードを使用しない限りどのモジュールからでも参照可能
→Public変数の宣言・ユーザ定義型の定義は標準モジュールの宣言エリアで行う
→モジュール名はほかと重複しなければ自由に設定することが可能
※プロシージャ名が別のモジュールのプロシージャ名と重複した場合
「モジュール名.プロシージャ名」と表記して呼び出すことは可能だが混乱するのでできれば避ける
2.フォーム/レポートモジュール:
→フォーム・レポート・及びそのコントロールに関連付けられたイベントプロシージャを格納するモジュール
→標準プロシージャの格納も可能だがここに書いてもほかのモジュールからは参照できない
→プロジェクトエクスプローラにモジュールを追加するときは「イベントのビルド」または「コードの表示」から行う
削除したい時はプロパティシートにて「コード保持」をいいえに変更すれば、フォーム/レポートを保存して閉じた際に削除される
→モジュール名は「Formフォーム名」「Reportレポート名」とされ、変更はできない
3.クラスモジュール:
→ユーザ独自に作成したオブジェクトを作成するためのプロシージャを格納(=プロパティ)
→ユーザ独自に作成したオブジェクトの標準プロシージャを格納(=メソッド)
→モジュール名=クラス名となる、自由に設定できる
※詳しくは今後の記事にて
モジュールに記述した各変数の有効期間
2.モジュールレベル変数:Endステートメント(終了時)またはモジュールに変更を加えた際に初期化
3.プロシージャレベル変数:プロシージャの終了で初期化
※すべての変数はファイルを閉じるタイミングで初期化される
Endステートメント_コードの中に記述することでコードの実行を(呼び出し元含め)強制終了できるステートメントモジュールのインポート / エクスポートの際の拡張子
・フォーム / レポートモジュール「.cls」
・クラスモジュール「.cls」