With ステートメント
1 つのオブジェクトに対して一連のステートメントを実行します。
With object
statements
End With
引数
- object
必ず指定します。オブジェクトの名前またはオブジェクトを返す関数の名前を指定します。 - statements
必ず指定します。object で実行する 1 つ以上のステートメントを指定します。
解説
With ステートメントを使用すると、特定のオブジェクトの名前を再定義することなく、そのオブジェクトに対して一連のステートメントを実行できます。たとえば、単一のオブジェクトに対して多数のプロパティを変更するには、プロパティを割り当てるたびにオブジェクトを参照する代わりに、オブジェクトを 1 回だけ参照し、With の制御構造内に、プロパティを割り当てるステートメントを記述します。次のコードは、With ステートメントを使って同じオブジェクトの複数のプロパティに値を割り当てる例です。
With MyLabel
.Height = 2000
.Width = 2000
.Caption = "This is MyLabel"
End With
プロパティの操作は With ステートメントの重要な機能ですが、With ステートメントには他の用途も考えられます。有効なコードであれば、すべて With ブロック内で使用できます。
**メモ **With ブロックでの処理が始まると、object を変更することはできません。したがって、1 つの With ステートメントで多数の異なるオブジェクトを処理することはできません。
With ブロックの中に別の With ブロックを配置すると、With ステートメントをネストできます。ただし、外側の With ブロックのメンバは内側の With ブロックに対してはマスクされているので、内側の With ブロックのオブジェクト参照を外側の With ブロックに含まれているオブジェクトのメンバに渡すときは、完全に修飾しなければなりません。
重要 With ブロックへのジャンプも With ブロックからのジャンプも行わないでください。With ブロックのステートメントは実行されますが、With ステートメントまたは End With ステートメントが実行されません。その結果、エラーや予想外の動作が発生することがあります。