大体でIT

-ちょっと使えるネタを紹介-

大体でIT

Excel VBAで、変数の適用範囲(スコープ)を宣言する方法について、ご紹介します。変数のスコープは、3種類あります。「同じプロシージャ内」、「同じモジュール内」、「すべてのモジュール」で適用できます。適用範囲を意識して変数を宣言していきましょう。

はじめに

この記事では、変数の宣言する方法について、ご紹介します。

変数を宣言するには、「Dim」と「Public」があります。

変数を使う際には、適用範囲(スコープ)を意識する必要があります。

変数のスコープは、次の範囲があります。

  • 同じプロシージャ内(プロシージャ内でDim)
  • 同じモジュール内(一番上でDim)
  • すべてのモジュール(一番上でPublic)

といった感じです。

変数をどの範囲で使いたいかを意識して、変数を宣言していきましょう。

では、変数を宣言する方法について、解説していきます。

この記事で紹介すること

  • 変数の適用範囲(スコープ)を宣言する方法

目次から見たい項目へ移動すると便利ですよ。

目次

変数を宣言する

「変数」を宣言してみます。

「Dim」を使えばできます。

Dimを使う

「Dim」を使って、変数を宣言してみます。

Sub TEST1()
    '変数を宣言
    Dim A
    A = 1
    MsgBox A
End Sub

変数を宣言して出力できます。

変数を宣言して出力

変数を宣言して出力できました

変数を宣言して出力できました。

変数を宣言する際には、適用範囲(スコープ)を意識する必要があります。

変数の適用範囲(スコープ)を設定する

変数の適用範囲(スコープ)を設定してみます。

適用範囲(スコープ)は3種類

変数の適用範囲(スコープ)は3種類あります。

  • 同じプロシージャ内(プロシージャ内でDim)
  • 同じモジュール内(一番上でDim)
  • すべてのモジュール(一番上でPublic)

という感じです。

プロシージャ内で「Dim」を宣言すると、同じプロシージャ内で変数を使えます。

同じプロシージャ内

プロシージャ内で「Dim」を宣言すると、同じプロシージャ内で変数を使えます

一番上で「Dim」を宣言すると、同じモジュール内で変数を使えます。

同じモジュール内

一番上で「Dim」を宣言すると、同じモジュール内で変数を使えます

一番上で「Public」を宣言すると、すべてのモジュール内で変数を使えます。

すべてのモジュール

一番上で「Public」を宣言すると、すべてのモジュール内で変数を使えます

では、それぞれ、変数を宣言して使ってみます。

同じプロシージャ内(Dim)

プロシージャ内で、「Dim」を使って宣言してみます。

同じプロシージャ内で使える

プロシージャ内で「Dim」を宣言すると、同じプロシージャ内で変数を使えます。

プロシージャ内で「Dim」を宣言すると、同じプロシージャ内で変数を使えます

では、実行してみます。

同じプロシージャ内で変数を使えました

同じプロシージャ内で変数を使えました。

別のプロシージャでは使えない

プロシージャ内で「Dim」を宣言した場合では、別プロシージャで変数は使えません

プロシージャ内で「Dim」を宣言した場合では、別プロシージャで変数は使えません

では、実行してみます。

結果は、空白となります。

結果は、空白となりました

結果は、空白となりました。

同じプロシージャ内で「Dim」を使った場合は、同じプロシージャ内のみ有効です。

同じモジュール内(一番上にDim)

一番上で「Dim」を宣言してみます。

同じモジュール内で使える

一番上で「Dim」を宣言すると、同じモジュール内で変数を使えます。

一番上で「Dim」を宣言すると、同じモジュール内で変数を使えます

では、実行してみます。

同じモジュール内で変数を使えました

同じモジュール内で変数を使えました。

別モジュールでは使えない

一番上で「Dim」を宣言した場合では、別モジュールで変数は使えません

一番上で「Dim」を宣言した場合では、別モジュールで変数は使えません

では、実行してみます。

結果は、空白となります。

結果は、空白となりました

結果は、空白となりました。

一番上で、「Dim」を宣言した場合は、同じモジュール内でのみ変数が有効になります。

すべてのモジュール(一番上でPublic)

一番で「Public」を使って、変数を宣言してみます。

別モジュールで変数を使う

一番上で「Public」を使って変数を宣言すると、すべてのモジュールで変数を使うことができます。

一番上で「Public」を使って変数を宣言すると、すべてのモジュールで変数を使うことができます

では、実行してみます。

別モジュールでも変数を使える

別モジュールでも変数を使えました

別モジュールでも変数を使えました。

一番上で、「Public」を使って変数を宣言した場合は、すべてのモジュールで変数が有効になります。

ただ、「Public」を使う場合は、思わぬ結果にならないように適用範囲を意識して使いましょう。

おわりに

この記事では、変数を宣言する方法について、ご紹介しました。

変数を宣言するには、「Dim」と「Public」があります。

変数を使う際には、適用範囲(スコープ)を意識する必要があります。

変数のスコープは、次の範囲があります。

  • 同じプロシージャ内(プロシージャ内でDim)
  • 同じモジュール内(一番上でDim)
  • すべてのモジュール(一番上でPublic)

といった感じです。

変数をどの範囲で使いたいかを意識して、変数を宣言していきましょう。

参考になればと思います。最後までご覧くださいまして、ありがとうございました。

関連する記事から探す

カテゴリから探す

カテゴリから見たい項目を探すと便利ですよ。

サイト内を検索する

↓キーワードを入力する

アーカイブから探す