【Excel VBA】With構文の使い方

Excel マクロ(VBA)

今回はExcel VBAで頻用するWith構文の使い方を解説します。With構文というのは以下のようなコードのことです。

With Cells(1, 1)

    .Font.Bold = True

    .Font.Size = 14

    .Font.color = vbWhite

    .Interior.ColorIndex = 1

    .Columns.AutoFit

End With

以下で詳しく解説します。

スポンサーリンク

Withの使い方

まずWith構文の使い方を説明します。使い方は簡単で、以下のように“With”の後ろに処理を適用する範囲を指定し、”With”と”End With”に囲まれた部分に処理内容を記述します。

With 範囲

処理内容

End With

範囲

1つのセルでも、複数範囲でも、シート全体でも、好きなように範囲を設定できます。以下に例示します。

  • A1セル:With Cells(1,1) 又は With Range(“A1”)
  • 1行目:With Rows(1)
  • A1:G1:With Range(Cells(1,1), Cells(1,7)) 又は With Range(“A1:G1”)
  • シート全体:With Cells

なお、CellsとRangeの違いについては以下を参照ください。

処理内容

いくつでも好きな処理を設定できます。その際、適用範囲はWithの後ろで指定しているので記述する必要はありません。

スポンサーリンク

With構文の意味

次にWith構文の意味を説明します。With構文というのは、同じコードを何度も繰り返し書かなくて済むようにするための構文です。

上述のコードは以下のような内容になっています。
1. フォントを太字に
2. フォントサイズを14に
3. フォントの色を白に
4. 塗りつぶしを黒に
5. 列の幅をいい感じに

処理を可視化すると以下のようになります。

この5つの処理を1つずつ書くと、コードは以下のようになり、重複が多くなります。

Cells(1, 1).Font.Bold = True
Cells(1, 1).Font.Size = 14
Cells(1, 1).Font.color = vbWhite
Cells(1, 1).Interior.ColorIndex = 1
Cells(1, 1).Columns.AutoFit

このコードを、With構文を使うことでよりスッキリと記述することができます。

With Cells(1, 1)

    .Font.Bold = True

    .Font.Size = 14

    .Font.color = vbWhite

    .Interior.ColorIndex = 1

    .Columns.AutoFit

End With

これがWith構文を使う意味です。

コメント

タイトルとURLをコピーしました