みなさんこんにちは、現役エンジニアのサメハックです
未経験からWebエンジニアに転職し、
現在正社員として5年働いたのちフリーランスとして独立しました。
1分で理解できるVBA講座シリーズです。
今回はWithステートメントを使う方法について学んでいきましょう!
駆け出しエンジニアや未経験の方、
また新入社員を指導する先輩社員にとっても
わかりやすいように解説していきます!
この記事を読むと・・・
- 1分でWithステートメントを理解しよう
1分で理解できるVBA講座シリーズはじめっ!
初期設定
マクロを有効にする

Excelファイルを開き、
ファイル→オプション→トラストセンター→トラストセンターの設定→マクロの設定
という順に進み、
VBAが有効な場合にExcel4.0のマクロを有効にする
という項目にチェックを入れてください。
VBEの起動
Excelファイルを開いた状態でAlt+F11を押してVBEを開いてください
モジュールの作成


挿入→標準モジュール
という順に操作すると自動的にモジュールが開くので、ここにコードを記述します。
Withステートメント

Withステートメントとは、繰り返し使用するオブジェクトの
記述を省略するステートメントです。
With~End Withの構文
With オブジェクト
.〜〜〜〜
End With
このように、Withで指定したオブジェクトを
“.”で表現することが出来ます。
実際に動かしてみよう!

Sub with構文()
'ブックとシートを指定
With Workbooks("with構文.xlsm").Sheets("Sheet1")
.Range("B3") = "テスト"
End With
End Sub
これを実行すると、
with構文.xlsmのSheet1のB3セルに”テスト”
が設定されます。

“.”で省略できるのはWith~End Withのスコープ内だけだよ!
ネストありを動かしてみよう!
Sub ネスト()
'ブックを指定
With Workbooks("with構文.xlsm")
'シートを指定
With .Sheets("Sheet1")
.Range("B3") = "テスト"
End With
End With
End Sub
このようにネスト形式にしても同様の結果が得られます。

省略されたオブジェクトはスコープによって変わるよ!
まとめ

- Withステートメントを使うと、オブジェクトを省略して記述できる
- 省略されたオブジェクトはスコープによって変わる

満足いただけたら、1クリックなのでSNSフォローしてもらえると嬉しいです🦈