With~End Withステートメント~便利なWithステートメント~日本一やさしいマクロ講座入門編2回

With~End Withステートメント

記録のマクロで作ったマクロのコードを Visual Basic Editor でやっと見るところまで来ました。 セルの背景色を 塗るというだけのことなのに沢山のコードが 記述されていて びっくり してしまいます。それに何やら、With~End Withステートメントというものがあります。Withステートメントってどんな意味でしょうか?

Withステートメント

リンクユニット


日本一やさしいマクロ講座入門編 マクロ講座2回-2

コードの意味とWith~End Withステートメント

マクロ講座2回は、マクロの中身を知るということで、「Visual Basic Editor(VBE)」を開いてコードを見ています。 セルの背景色を 塗るというだけのことに沢山のコードが 記述されていて びっくり してしまいます。でもそれは、 設定しないということを高度化したものですこれはマクロをリメイクするときのヒントになります。

このページは、マクロ講座2回からの続きです。
(サンプルファイルは、こちらから マクロ講座2回サンプルデータ

記録されたマクロコードの意味

(6)こんどは、コードの意味です。
Sub Macro2()
' Macro1 の解説
'
    With Selection.Interior  'Withステートメント
        .Pattern = xlSolid '塗りつぶし(網かけ無し)
        .PatternColorIndex = xlAutomatic 'パターン色をxlAutomatic にする
        .ThemeColor = xlThemeColorAccent4
        .TintAndShade = 0.799981688894314
        .PatternTintAndShade = 0 'PatternTintAndShadeプロパティ
    End With 'Withステートメントの終わり
End Sub
    
(7)プログラムの中に
  With オブジェクト名
       処理1
       処理2 
  End With     
がありますが、これは、With~End Withステートメントといいます。

同じオブジェクトに対して複数の処理を実行するときに使う方法です。
「Selection.Interior」とは「選択対象の内部」という意味です。

背景の塗りつぶしには、色の他にパターンもあるので、自動的に、 セルの色だけを指定すると、網掛けなしという指定が入るのです。 おもしろいですね。

こちらが、不要な部分を削除したコードになります。

Sub Macro3()
    With Selection.Interior 
        .ThemeColor = xlThemeColorAccent4
        .TintAndShade = 0.799981688894314
    End With
End Sub

具体的な設定をセルの書式設定ダイアログで確認

簡単なコードでしたが、具体的な設定をセルの書式設定ダイアログで確認しましょう。
セルの書式設定ダイアログの塗りつぶしタブをクリックすると以下のような画面になります。
ショートカットキーで、 Ctrl + 1 と入力すると、セルの書式設定ダイアログをすばやく表示できます。
新しいマクロの記録
マクロのコードでは、次の部分と対応します。
新しいマクロの記録
マクロ講座2回はこれで終了です。
お疲れ様でした。

こちらもおすすめ