みなさんこんにちは、現役エンジニアのサメハックです
未経験からWebエンジニアに転職し、
現在正社員として5年働いたのちフリーランスとして独立しました。
1分で理解できるVBA講座シリーズです。
今回はWithステートメントを使う方法について学んでいきましょう!
駆け出しエンジニアや未経験の方、
また新入社員を指導する先輩社員にとっても
わかりやすいように解説していきます!
この記事を読むと・・・
- 1分でWithステートメントを理解しよう
1分で理解できるVBA講座シリーズはじめっ!
初期設定
マクロを有効にする
![](https://samehack.com/wp-content/uploads/2022/09/4aa01198e4ec19983c82148137aa7dc7-1024x755.jpg)
Excelファイルを開き、
ファイル→オプション→トラストセンター→トラストセンターの設定→マクロの設定
という順に進み、
VBAが有効な場合にExcel4.0のマクロを有効にする
という項目にチェックを入れてください。
VBEの起動
Excelファイルを開いた状態でAlt+F11を押してVBEを開いてください
モジュールの作成
![](https://samehack.com/wp-content/uploads/2022/09/ca09f6caeb3bc89303388d6ce4214959-1024x538.png)
![](https://samehack.com/wp-content/uploads/2022/09/56a966c8a510ac6dab68104fe31163ed-1024x538.jpg)
挿入→標準モジュール
という順に操作すると自動的にモジュールが開くので、ここにコードを記述します。
Withステートメント
![](https://samehack.com/wp-content/uploads/2022/09/12-1-1024x682.jpg)
Withステートメントとは、繰り返し使用するオブジェクトの
記述を省略するステートメントです。
With~End Withの構文
With オブジェクト
.〜〜〜〜
End With
このように、Withで指定したオブジェクトを
“.”で表現することが出来ます。
実際に動かしてみよう!
![](https://samehack.com/wp-content/uploads/2022/09/4-1-1024x683.jpg)
Sub with構文()
'ブックとシートを指定
With Workbooks("with構文.xlsm").Sheets("Sheet1")
.Range("B3") = "テスト"
End With
End Sub
これを実行すると、
with構文.xlsmのSheet1のB3セルに”テスト”
が設定されます。
![](https://samehack.com/wp-content/uploads/2022/09/3fe9aa8b9349d7429ef0c6350ec1ad6c-1024x582.jpg)
“.”で省略できるのはWith~End Withのスコープ内だけだよ!
ネストありを動かしてみよう!
Sub ネスト()
'ブックを指定
With Workbooks("with構文.xlsm")
'シートを指定
With .Sheets("Sheet1")
.Range("B3") = "テスト"
End With
End With
End Sub
このようにネスト形式にしても同様の結果が得られます。
![](https://samehack.com/wp-content/uploads/2022/09/5c0a497d9182d66da957089f7ccf27ed-1024x582.jpg)
省略されたオブジェクトはスコープによって変わるよ!
まとめ
![](https://samehack.com/wp-content/uploads/2021/11/dfe65cc8c5d3185e7b92ade5af4cc6bb-4-1024x264.jpg)
- Withステートメントを使うと、オブジェクトを省略して記述できる
- 省略されたオブジェクトはスコープによって変わる
![](https://samehack.com/wp-content/uploads/2021/09/00c3d3cf1d32995d7b5414ac551d13f3.png)
満足いただけたら、1クリックなのでSNSフォローしてもらえると嬉しいです🦈