VBScript基礎3:変数のスコープ
ここではVBScriptで変数を宣言した場合、どの範囲まで有効かという変数のスコープについて書いていきます。
◆変数のスコープ
基本的にプロシージャ(関数)内部で変数が宣言された場合、その変数は宣言されたプロシージャ内でのみ有効です。
以下の場合、「MsgHello」プロシージャ内でのみ「Dim A」は有効です。
1 2 3 4 5 6 7 8 |
Option Explicit MsgHello 'プロシージャの呼び出し' Sub MsgHello 'プロシージャ' Dim A A= "Hello!" MsgBox A End Sub |
そのため、次のようにプロシージャの外にある場合はエラーとなります。
1 2 3 4 5 6 7 8 9 10 |
Option Explicit MsgHello 'プロシージャの呼び出し' MsgBox A '←ここでエラーになる' Sub MsgHello 'プロシージャ' Dim A A= "Hello!" MsgBox A End Sub |
◆グローバル変数のスコープ
グローバル変数はどのプロシージャからも利用できます。
VBScripではプロシージャの外で宣言した変数はグローバル変数となります。
上の例の変数の宣言位置を変更すると以下のようになります。
1 2 3 4 5 6 7 8 9 10 |
Option Explicit Dim A '←変数の宣言を外に変更' MsgHello 'プロシージャの呼び出し' MsgBox A '←ここでも問題なく表示されるようになる' Sub MsgHello 'プロシージャ' A= "Hello!" 'プロシージャの中でも変数は有効' MsgBox A End Sub |
●関連記事
VBScript基礎8:WScriptオブジェクト。ドラッグ&ドロップでファイル名やパスを取得する
VBScriptのツールにファイルをドラッグ&ドロップする際に利用する、WScriptオブジェクトの説明です。