With ステートメント

単一のオブジェクトまたはユーザー定義型に対して一連のステートメントを実行します。

構文

Withobject [ statements ] End With

With ステートメントの構文には、次の指定項目があります。

指定項目 説明
object 必須。 オブジェクトまたはユーザー定義型の名前です。
statements 省略可能。 object に対して実行する 1 つ以上のステートメントです。

解説

With ステートメントを使用すると、特定のオブジェクトに対してオブジェクト名の修飾を繰り返すことなく一連のステートメントを実行できます。 たとえば、1 つのオブジェクトにある複数の異なるプロパティを変更する場合は、With 制御構造の内側にプロパティの割り当てステートメントを配置してオブジェクトを 1 回参照します。これにより、プロパティの割り当てごとにオブジェクトを参照する必要がなくなります。

次の例は、With ステートメントを使用して、同じオブジェクトの複数のプロパティに値を割り当てる方法を示しています。

With MyLabel 
 .Height = 2000 
 .Width = 2000 
 .Caption = "This is MyLabel" 
End With 

注:

With ブロックに入ると、object は変更できなくなります。 そのため、1 つの With ステートメントを使用して、複数の異なるオブジェクトを操作することはできません。

With ステートメントは、別の With ブロック内に配置することで入れ子にできます。 ただし、外側の With ブロックのメンバーは内側の With ブロックではマスクされるため、内側の With ブロックでは、外側の With ブロック内のオブジェクトのメンバーへの完全修飾オブジェクト参照を指定する必要があります。

注:

一般に、With ブロックの外側または内側にジャンプすることはお勧めできません。 With ブロック内のステートメントが実行されるときに、With ステートメントまたは End With ステートメントが実行されていないと、オブジェクトへの参照を格納している一時変数はプロシージャが終了するまでメモリ内に残ります。

この例では、With ステートメントを使用して、単一のオブジェクトに対して一連のステートメントを実行します。 このオブジェクトとそのプロパティは、説明のためにのみ使用している一般的な名前です。

With MyObject 
 .Height = 100 ' Same as MyObject.Height = 100. 
 .Caption = "Hello World" ' Same as MyObject.Caption = "Hello World". 
 With .Font 
  .Color = Red ' Same as MyObject.Font.Color = Red. 
  .Bold = True ' Same as MyObject.Font.Bold = True. 
 End With
End With

関連項目

サポートとフィードバック

Office VBA またはこの説明書に関するご質問やフィードバックがありますか? サポートの受け方およびフィードバックをお寄せいただく方法のガイダンスについては、Office VBA のサポートおよびフィードバックを参照してください。