VBA

変数が有効な範囲について -初めてのAccessでVBA-

変数は有効な範囲があります。有効範囲は変数の宣言時に指定可能で3種類あります。

変数の適応範囲3種類
  • プロシージャレベル(プロシージャの中だけで有効)
  • プライベートレベル(モジュールの範囲でのみ有効)
  • パブリックレベル(全てのデータベースモジュール範囲で有効)

プロシージャレベルの変数

プロシージャレベルの変数は下の「Sub test() ~ End Sub」のプロシージャの中だけで有効です。ここでしか使わないし・・・。的な変数はプロシージャレベルにしておきましょう。

変数の宣言は「Dim i As Integer」の部分で、この場合は「Sub test() ~ End Sub」の中で宣言されているので、プロシージャレベルの変数となります。

プライベートレベルの変数

こちらはプロシージャレベルの一つ上、モジュールレベルの範囲で有効になります。

変数の宣言は「Private」を付けて「Sub test*() ~ End Sub」の外で宣言します。「Private」を省略して書いてもプロシージャの外であればプライベート変数として動作します。

ただしプロシージャの中に書いた場合はたとえ「Private」を付けてもプライベートレベルの変数として機能しません。「Dim i As Integer」で書いた場合は通常のプロシージャレベルの変数として機能します。

パブリックレベルの変数

パブリックレベルの変数はデータベースに使われているモジュール全てで有効になります。

モジュール1

モジュール2

モジュール1の1行目のように「Public」を付けてプロシージャの外側で変数を宣言します。モジュール2には宣言がありませんが、この場合の変数「i」を扱えています。

ちなみにモジュール2のプロシージャに付いている「Public」はモジュール1からtest3のプロシージャを参照できるようにするためです。

created by Rinker
¥3,080 (2020/12/05 23:26:58時点 Amazon調べ-詳細)

プログラミング集中的に学びたい方向け

プログラミング自分のタイミングで学びたい方向け

COMMENT

メールアドレスが公開されることはありません。 * が付いている欄は必須項目です

CAPTCHA