
Excel VBA Withステートメントは、オブジェクトの複数のプロパティやメソッドを一度に効率よく設定または呼び出すために使用します。オブジェクト参照を繰り返し書く手間を省くことができます。具体的な使い方や、注意点やサンプルコードを紹介します。
📌 「これ、自動化できたらラクなのに…」と思ったこと、ありませんか?
実はその作業、Excelマクロで簡単に自動化できるかもしれません。
「でもマクロって難しそう…」という方のために、完全初心者向けの入門記事をご用意しました!
👇実務で“そのまま使える”テンプレ付きで、コピペするだけ!
初心者向けエクセルマクロの作り方を解説|コピペOK実務テンプレ付き
Excel VBA Withを利用
以下のようなシーンで利用されます。
・同じオブジェクトに対して複数の操作を行う場合に、コードを短くし、読みやすくする。
・オブジェクト参照の回数を減らすことで、コードの実行速度が向上することがあります。
Withステートメントの基本構文は以下の通りです。
With オブジェクト
.プロパティ1 = 値1
.メソッド1 引数1, 引数2
' 他のプロパティやメソッドの呼び出し
End With
オブジェクト: 操作対象のオブジェクト
.プロパティ: 設定するプロパティ
.メソッド: 呼び出すメソッド
・Withブロックの終了時に、オブジェクト参照が適切に解放されることを確認する。
・Withブロックをネストする場合は、どの`With`がどのオブジェクトに対しているかを明確にすること。
Excel VBA Withのサンプルコード
Option Explicit
Sub FormatCells()
With ThisWorkbook.Sheets("Sheet1").Range("A1:B2")
.Font.Size = 12
.Font.Color = RGB(255, 0, 0)
.Interior.Color = RGB(200, 200, 200)
End With
End Sub
このコードは、シート「Sheet1」のセル範囲A1:B2に対して、フォントサイズを12、フォントの色を赤、背景色を灰色に設定します。
自分の実力を客観的にチェックしたい…。そんな方のために、自分に合ったスタート地点がわかる無料のExcelVBAベーシック選択問題集をご用意しました。
複数のプロパティを設定する
グラフの設定を一度に行います。
Option Explicit
Sub FormatChart()
Dim chartObj As ChartObject
Set chartObj = ThisWorkbook.Sheets("Sheet1").ChartObjects("Chart 1")
With chartObj.Chart
.ChartTitle.Text = "Sales Data"
.ChartType = xlColumnClustered
.HasLegend = True
End With
End Sub
このコードは、シート「Sheet1」にあるグラフオブジェクト「Chart 1」のタイトルを「Sales Data」に設定し、グラフの種類をクラスター化された柱状グラフに変更し、凡例を表示します。
Withステートメントは、同じオブジェクトに対して複数の操作を行う場合に、コードを簡素化し、読みやすくし、パフォーマンスを向上させるために使用されます。特にオブジェクトのプロパティやメソッドを頻繁に操作する場合に便利です。適切に使用することで、コードのメンテナンスが容易になります。
「Excel VBAで自動化するコードのベースが習得できる解説書」
Excel VBAエキスパートベーシックとスタンダード、どちらを選べばいいか判断が難しい…。そんな方のために、自分に合ったスタート地点がわかる無料のExcelVBAベーシック選択問題集を用意しました。