新しい範囲ブロックを始める命令文
構文:
Scope
[statements]
End Scope
記述:
範囲ブロックで、変数を定義(または再定義)すると、プログラム内で限定した範囲で使えるようにします。
変数が、範囲構造内の
Dim で定義(再定義)されると、このローカル作業変数は、その定義(再定義)から範囲の終わりまで、使うことができます。
このとき、範囲外の同じ名前の変数は、無視されて、範囲外の同じ名前でアクセスできません。
範囲ブロック中の命令文は、変数が範囲ブロックで再定義されるまでは、範囲外で定義された変数を使います。
ローカル変数は、個々のスコープ・ブロックの粒度レベルではなく、各手続き(プログラムの主要部分を含む)の粒度レベルで、スタックに予約されます。
したがって、異なるスコープ・ブロックに属するローカル変数は、同じメモリ空間を使うことができます。
スコープブロックの外側でグローバルとして定義された重複シンボルにアクセスするには、プレフィックスとして1つまたはできれば2つのドットを追加します:
.SomeSymbol またはできれば
..SomeSymbol (
With..End With ブロック内の場合は
..SomeSymbolのみ)。
Scope..End Scope は、
-lang qb 方言でコンパイルするときには、受入れられません。
例:
Dim As Integer x = 5, y = 2
Print "x ="; x; ", "; "y ="; y
Scope
Dim x As Integer = 3
Print "x ="; x; ", "; "y ="; y
Scope
Dim y As Integer = 4
Print "x ="; x; ", "; "y ="; y
End Scope
End Scope
Print "x ="; x; ", "; "y ="; y
Sleep
方言差:
QBからの違い:
参照: