エクセルマクロVBA

変数の適用範囲

投稿日:

変数は宣言した場所によってそれを使用できる範囲が制限されます。

 

プロシージャとは処理単位のひとつで、

Sub から End Sub までのひとつの単位をSubプロシージャとよびます。

 

  • プロシージャ内に変数を宣言した場合

 

プロシージャ内で変数を宣言した場合は、その変数はプロシージャ内でのみ利用することができます。

 

Sub A()

Dim 表示A As Integer  ←このSubプロシージャ内でのみ利用可能

処理

End Sub

 

 

  • モジュール内のはじめに宣言した場合

 

モジュールというのはVBAを記述する場所のひとつの単位を指しますが、

以下のように各Subプロシージャの外側に変数を宣言した場合

各プロシージャからその変数を利用することができます。

 

Dim 表示B As Integer  ←各Subプロシージャから利用可能

 

Sub B()

表示B = 1

MsgBox 表示B    

End Sub

 

Sub C()

表示B = 2

MsgBox 表示B

End Sub

 

[サンプルC097]

Dim 表示B As Integer

 

Sub B()

表示B = 2

MsgBox 表示B

End Sub

 

Sub B()内から変数「表示B」を参照できるため、

2を代入してメッセージボックスを表示させています。


 

  • Publicステートメントを使って宣言した場合

 

先頭に「Pubulic」ステートメントを付けて変数を宣言した場合は

外部の他のモジュールからもその変数を利用することができます。

 

Public
表示C As Integer

 

モジュール1————————-

[サンプルC097_1]

 

Public
表示C As Integer

 

モジュール2————————-

[サンプルC097_2]

 

Sub E()

 

表示C = 100

MsgBox 表示C

 

End Sub

 

「モジュール1」内の変数「表示C」は Publicで宣言されており、

別の「モジュール2」内のSub E()からも参照できるので

変数「表示C」に100を代入してメッセージボックスで表示させています。





動画で楽にパソコンが身につく方法はこちら>>

-エクセルマクロVBA

Copyright© エクセルVBA使い方入門 , 2020 All Rights Reserved Powered by STINGER.