【用語集に記載の内容について】

用語集に記載されているメソッドや関数の引数は、VBAエキスパート試験の試験範囲に基づいており、すべての引数を網羅しておりません。 また、書式は公式テキストの記載に準じています。
試験範囲外の引数や詳細については、ヘルプ機能やオブジェクトブラウザーをご参照ください。

【コードをコピーして実行する場合の注意】

文字コードの関係上、半角の「¥」は「/」で表示されるため、当サイトでは全角の「¥」で記載しています。当サイトのコードをコピーして実行する場合は、全角の「¥」を半角の「¥」に変換してください。

Withステートメント

名称Withステートメント
説明
オブジェクト(操作の対象)に対する複数の操作を簡潔に書くための構文です。

Withステートメントを使用すると、特定のオブジェクトを何度も参照する際に、コードの可読性を向上させ、処理を効率化できます。
書式
With オブジェクト
    .プロパティ = 値
    .メソッド
End With

オブジェクト:操作対象のオブジェクトを指定

プロパティやメソッドの前に「.」を記述することで、Withステートメントに指定したオブジェクトのプロパティとメソッドとします。
コード例①
【Withステートメントにセルを指定】
Sub Macro1()
    With Range("A1")
        .Value = 10
        .Activate
    End With
End Sub

WithステートメントにアクティブシートのセルA1を指定することで、ステートメント内のセルのValueプロパティとActivateメソッドのオブジェクトの記述を省略しています。

マクロを実行すると、アクティブシートのセルA1に10を代入し、アクティブにします。
コード例②
【Withステートメントにワークシートを指定】
Sub Macro2()
    With Worksheets("Sheet1")
        .Name = "シート1"
        .Range("A1") = 10
    End With
End Sub

Withステートメントにアクティブブックのワークシート「Sheet1」を指定することで、ステートメント内のワークシートのNameプロパティのオブジェクトとセルA1のシートの階層構造の記述を省略しています。

マクロを実行すると、アクティブブックのワークシート「Sheet1」の名前を「シート1」に変更し、セルA1に10を代入します。
コード例③
【Withステートメントにワークブックを指定】
Sub Macro3()
    With Workbooks("Book1.xlsx")
        'ワークシート「Sheet1」のセルA1に値を代入
        .Worksheets("Sheet1").Range("A1") = 100
        'ブックを上書き保存
        .Save
    End With
End Sub

Withステートメントにブック「Book1.xlsx」を指定することで、ステートメント内のワークシート「Sheet1」のブックの階層構造とブックのSaveメソッドのオブジェクトの記述を省略しています。

マクロを実行すると、ブック「Book1.xlsx」のシート「Sheet1」のセルA1に100を代入し、ブックを上書き保存します。
カテゴリベーシック