たま氏の覚え書き

KNIME・AccessVBA・Swift等、学習したことを覚え書き

AccessVBA_プロシージャのスコープ(適用範囲)とモジュールについての基礎知識

プロシージャのそれぞれの書き方によるスコープ(適用範囲)とモジュールの各種類について記載

プロシージャの適用範囲

標準モジュールに記述した場合
1.頭にPublic とつけるか、何もつけない → 全てのモジュール・プロシージャから呼び出せる
2.頭にPrivateとつける → 記述しているモジュール内のみで使用が可能、ほかのモジュールから呼び出すことはできない

標準モジュール以外に記述した場合
頭にPublic とつけてもつけなくても、ほかのモジュールのプロシージャから呼び出すことはできない

モジュールの種類

1.標準モジュール:
 →標準モジュールに格納したプロシージャは、Privateキーワードを使用しない限りどのモジュールからでも参照可能
 →Public変数の宣言・ユーザ定義型の定義は標準モジュールの宣言エリアで行う
 →モジュール名はほかと重複しなければ自由に設定することが可能
  ※プロシージャ名が別のモジュールのプロシージャ名と重複した場合
  「モジュール名.プロシージャ名」と表記して呼び出すことは可能だが混乱するのでできれば避ける
2.フォーム/レポートモジュール:
 →フォーム・レポート・及びそのコントロールに関連付けられたイベントプロシージャを格納するモジュール
 →標準プロシージャの格納も可能だがここに書いてもほかのモジュールからは参照できない
 →プロジェクトエクスプローラにモジュールを追加するときは「イベントのビルド」または「コードの表示」から行う
  削除したい時はプロパティシートにて「コード保持」をいいえに変更すれば、フォーム/レポートを保存して閉じた際に削除される
 →モジュール名は「Formフォーム名」「Reportレポート名」とされ、変更はできない
3.クラスモジュール:
 →ユーザ独自に作成したオブジェクトを作成するためのプロシージャを格納(=プロパティ)
 →ユーザ独自に作成したオブジェクトの標準プロシージャを格納(=メソッド)
 →モジュール名=クラス名となる、自由に設定できる  ※詳しくは今後の記事にて

モジュールに記述した各変数の有効期間

1.パブリック変数:Endステートメント(終了時)またはモジュールに変更を加えた際に初期化
2.モジュールレベル変数:Endステートメント(終了時)またはモジュールに変更を加えた際に初期化
3.プロシージャレベル変数:プロシージャの終了で初期化

※すべての変数はファイルを閉じるタイミングで初期化される
Endステートメント_コードの中に記述することでコードの実行を(呼び出し元含め)強制終了できるステートメント

モジュールのインポート / エクスポートの際の拡張子

・標準モジュール「.bas」
・フォーム / レポートモジュール「.cls」
・クラスモジュール「.cls」