【Excel VBA入門】まとめて記述|With

記述編

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」についての理解はひとまず問題はないと思います。