「With…~と一緒に」
英語の授業でもでてきましたよね。プログラミングでも「With」はおなじみの意味での使い方をします。
具体的な「With」の使い方をご紹介します。
さっそく見ていきましょう。
Withの使い方
ひとつのオブジェクトに対していろいろな処理をしたいときに、コードを簡素化する目的で使います。
まずポイントはこちらです。
With オブジェクト
.(ここにオブジェクトへの処理を記述)
.(ここにオブジェクトへの処理を記述)
.(ここにオブジェクトへの処理を記述)
End With
こちらでは「.(ここにオブジェクトへの処理を記述)」が3つ載っていますが、3つでなくても問題ありません。2つでも、4つ以上でも大丈夫です。
具体例をつかって確認しましょう。
例えばこのような処理をしたいときがあるとします。
【スタート】マクロの名前:with_nashi セル「A1」の値を太字にする セル「A1」の値のフォントサイズを「20」にする セル「A1」の値をフォント「HGS創英角ポップ体」にする 【ゴール】
通常のコードの書き方はこちらです。
Sub with_nashi() Range("A1").Font.Bold = True Range("A1").Font.Size = 20 Range("A1").Font.Name = "HGS創英角ポップ体" End Sub
実行の結果はこちらです。
なんとなく予想どおりの結果かと思います。
では、つぎを見ていきましょう。
これを「With」をつかった記述にするとこのようになります。
Sub with_ari() With Range("A1") .Font.Bold = True .Font.Size = 20 .Font.Name = "HGS創英角ポップ体" End With End Sub
さきほどと結果は同じです。
おなじ結果ですが、コードが簡素化されて読みやすくなりましたね。
今回ご紹介した例では「With」をつかって3行分コードをひとくくりにしましたが、もっと複雑な指定をしたいときには、それに応じて行数が増えていきます。
「・」(ドットマーク)の記述を忘れないようにしてくださいね。うえのコード例では、3~5行目の先頭に「・」が使われています。
まとめ
「With」の使い方についてご説明をいたしました。
わたしが実務で使用するときには「With」をつかって手書きでコードを記述するよりも、「マクロの記録」をつかってコードを自動生成したうえでコードを編集をする書き方が多いです。
「マクロの記録」で書かれた内容を把握できる程度になれば、「With」についての理解はひとまず問題はないと思います。