VBA付き| ExcelVBAでWith ... End Withステートメントを使用する方法は?

ExcelVBAのステートメントを使用

Withステートメントは、言及されたオブジェクトのすべてのプロパティとメソッドにアクセスするためにVBAで使用されます。最初に参照しているVBAオブジェクトを指定してから、WithステートメントをEnd Withで閉じる必要があります。次に、このステートメント内で、前述のオブジェクトのすべてのプロパティ変更とメソッドを実行できます。

以下は、VBAのWithステートメントの構文です。

 With [OBJECT] [Code…何をする必要がありますか?] End With 

オブジェクトは、参照しているセルまたはセルの範囲に他なりません。その後、プロパティを変更して、その特定のセルに関連付けられているすべてのメソッドを実行できます。

Excel VBAでステートメントを使用する方法は?

以下は、ExcelVBAでWithステートメントを使用するいくつかの例です。

このVBAWith Excelテンプレートはこちらからダウンロードできます– VBA WithExcelテンプレート

例1

A1セルに特定の値があるとすると、セルA1に「ExcelVBA」というテキストを入力しました。

このセルでは、いくつかのタスク、つまりExcelでの書式設定を行う必要があります。

フォントサイズ、フォント名、内部の色を変更したり、境界線を挿入したりしたい…典型的なことは、最初にVBARANGEオブジェクトを使用してセルを参照することです。

コード:

 Sub With_Example1()Range( "A1")End Sub 

フォントサイズを変更するには、このセルの「font」プロパティにアクセスします。

FONTプロパティの下で、Sizeプロパティにアクセスし、等号を付けてサイズを入力します。

コード:

 Sub With_Example1()Range( "A1")。Font.Size = 15 End Sub 

同様に、以下に示すように他のフォーマットタスクを実行します。

コード:

 Sub With_Example1()Range( "A1")。Font.Size = 15 Range( "A1")。Font.Name = "Verdana" Range( "A1")。Interior.Color = vbYellow Range( "A1")。Borders .LineStyle = xlContinuous End Sub 

これにより、前述のすべてのタスクが実行されますが、毎回セルアドレスを指定したすべてのフォーマットアクティビティを実行するコードを見ると、コードが長くて時間がかかるように見えます。

次に、VBA Withステートメントを使用して、毎回セルアドレスの入力を減らします。Excel VBAでWITHステートメントを開き、セルアドレスを指定します。

コード:

 Sub With_Example1()With Range( "A1")End Sub 

Withステートメントの中にドットを入れて、セルA1のすべてのプロパティとメソッドを確認します。

最初のフォーマットアクティビティはフォントサイズを変更することなので、FONTにアクセスし、このアクセスの下でSIZEプロパティにアクセスします。

コード:

 Sub With_Example1()With Range( "A1")。Font.Size = 15 End Sub 

同様に、他のフォーマットコードを指定し、VBA WithStatementを閉じます。

コード:

 Sub With_Example1()With Range( "A1")。Font.Size = 15 .Font.Name = "Verdana" .Interior.Color = vbYellow .Borders.LineStyle = xlContinuous End With End Sub 

コードを実行して、前述のオブジェクト、つまりセルA1のすべてのフォーマットを確認します。

したがって、すべての書式設定がセルに適用されます。このテクニックがいかにクールか見てください。

例2

たとえば、フォントに関連するすべてのプロパティを変更する場合は、セルとFONTプロパティに言及できます。

コード:

 Sub With_Example2()With Range( "A1")。Font End With End Sub 

vba With Statement内に、FONTプロパティのみに関連するプロパティとメソッドを表示するIntelliSenseリストが表示されます。

これで、あらゆるアクティビティを実行できるようになりました。

コード:

 Sub With_Example2() With Range("A1").Font .Bold = True 'Font will be Bold .Color = vbAlias 'Font color will be Alias .Italic = True 'Font will be italic style .Size = 20 ' Font size will be 20 .Underline = True 'Font will be underlined End With End Sub 

The result of this will be as shown below.

Example #3

Below code will access only cell border-related properties.

Code:

 Sub With_Example3() With Range("B2").Borders .Color = vbRed 'Border color will be red .LineStyle = xlContinuous 'Full border .Weight = xlThick 'Thick border End With End Sub 

The result of this code is as follows.

Things to Remember

  • With statement is used to minimize the code.
  • We need to supply object first for With statement.
  • Once the specific object is supplied we can access only that object’s properties and methods.