スポンサーリンク

With ~End With について [Selectionを例に分解と解釈]

with_01.jpg VBA
スポンサーリンク
スポンサーリンク

With ~End With ステートメント

これまでの参考例

※ローカル環境でも有益なコードを取得して運用可能です。
  マクロで取得した記述例(With Selection~End With)は、下記をご覧ください。

今回の簡単に取得したマクロ例

Sub マクロ記録()

    Range("B2").Select
    ActiveCell.FormulaR1C1 = "あ"
    Range("B2").Select
    With Selection.Font
        .Color = -16776961
        .TintAndShade = 0
    End With
    With Selection.Interior
        .Pattern = xlSolid
        .PatternColorIndex = xlAutomatic
        .Color = 65535
        .TintAndShade = 0
        .PatternTintAndShade = 0
    End With
    Selection.Font.Bold = True
End Sub

記録した内容

026.jpg
  • B2セルを選らんで「あ」を入力して確定
  • 確定したら選択セルがずれるので「B2」を再選択
  • フォント色を赤に
  • 背景色を黄色に
  • 太字に

With ~End With の解釈

要らないところを精査する

上記と同様のマクロの不要部分を精査したものが下記です。

Sub マクロを精査()
    Range("B2").Select
    ActiveCell.value= "あ"
'’====================
    With Selection.Font
        .Color = -16776961
        .Bold = True
    End With
'’====================
    With Selection.Interior
        .Color = 65535
    End With
'’====================
End Sub

さらに[Selection]を削って纏める (※[With Range~]で纏める )

Sub マクロを精査して纏め()
    Range("B2").Value = "あ"
    Range("B2").Interior.Color = 65535
'’====================
    With Range("B2").Font
               .Color = -16776961
               .Bold = True
    End With
'’====================
End Sub

[Range] は変数として代入可能

Sub Rangeで纏め_2()
  Dim RNG As Range
  Set RNG = Range("B2")
'’====================
    With RNG
              .Value = "あ"
              .Interior.Color = 65535
    End With
'’====================
    With RNG.Font
              .Color = -16776961
              .Bold = True
    End With
'’====================
End Sub

2.- 1,2,3は[全て同じ結果になります]

With ステートメントを理解して、自分に合った記述を

同じ内容の記述でも、自分に見易い記述をしていく事で、
コードはかなり分かり易くなります。

自分に理解し易い記述が良いでしょう。
※他人と共有しないといけないファイルは、
 自分のみに偏った記述方法には注意しましょう。

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