【知らないと損!?】初心者が学ぶと効率UP!Withステートメントの使い方!
こんにちは!『ルウちゃんのExcel Labo』管理人の@rouxchanblogです!
今回はこのような悩みについて解説します。
Withってよく出てくるけどどんな役割なの?
どんな時に使うのか教えて!
- Withステートメントを使うメリット
- ステートメントの意味
- 使う上での注意事項←超重要
Withステートメントの使い方
結論から言うと、Withステートメントの役割はズバリ「主語の省略」です!
説明の前にどのように省略できるか見ていきましょう!
Range("A1").Value = "こんにちは"
Range("A1").Font.Bold = True
Range("A1").Font.Color = vbRed
Range("A1").Font.Size = 12
これをコードで書くとこんなにズラーっと入力しなければいけません。
しかもめっちゃ読み取りにくい、、、
そこで「Withステートメント」を使ったコードで書いてみます!
With Range("A1")
.Value = "こんにちは"
.Font.Bold = True
.Font.Color = vbRed
.Font.Size = 12
End With
かなり読みやすいコードになりましたね!
ここまで見たら、いつも勉強されているみなさんはお気付きなのではないでしょうか!
そう!つまり「オブジェクトの記入」を省略できるのです!
かなり読みやすくなったね!
自分が過去に書いたコードを読み解くのに時間がかかったことってありませんか?
筆者は頻繁にあります笑
そんな方はぜひWithステートメントを使ってみてください!
ステートメントとは
Withステートメントはわかったけど、
そもそもステートメントってなんなの?
ここでこのような疑問をもった人がいるのではないでしょうか?
ステートメントとはプログラムの構成単位を指します。
基本的には1行に1ステートメントになっています。
VBAで使われる手続きや命令、宣言をすべて「〇〇ステートメント」と言うわけです。また、別の言い方で「〇〇文」と言われたりもします。
ステートメントにはたくさんの種類があります。
初心者の方がよく使うのはフロー制御ステートメントと言って「sub」や「 For」なんかがそれに当たります。
一つ一つ覚える必要はありませんが、一覧表見てどのような役割を持っているか確認してみてください!
名前 | 役割 |
---|---|
all | Sub プロシージャ、Function プロシージャ、ダイナミック リンク ライブラリ (DLL) プロシージャに制御を渡すフロー制御ステートメントです。 |
Do…Loop | 指定した条件が真 (True) である間、または条件が真 (True) になるまで、一連のステートメントを繰り返し実行するフロー制御ステートメントです。 |
End | プロシージャ (Sub,Function,Property) やブロック (If,Select,Type,With) を終了させるフロー制御ステートメントです。 End単独で使用した場合は、VBA実行を直ちに終了させ、変数等の状態をクリアします。 |
Exit | Do…Loop ループ、For…Next ループ、Function、Sub、または Property の各プロシージャを抜けるフロー制御ステートメントです。 |
For Each…Next | 配列やコレクションの各要素に対して、一連のステートメントを繰り返し実行するフロー制御ステートメントです。 |
For…Next | 指定した回数だけ、一連のステートメントを繰り返すフロー制御ステートメントです。 |
GoSub…Return | プロシージャ内のサブルーチンへの分岐と復帰を行うフロー制御ステートメントです。 |
GoTo | プロシージャ内の指定した行に無条件に分岐するフロー制御ステートメントです。 |
If…Then…Else | 式の値に基づいて、条件付きの実行を行うフロー制御ステートメントです。 |
On…GoSub | 式の値に応じて、指定した複数の行のうちのいずれかに分岐させるフロー制御ステートメントです。 |
On…GoTo | 式の値に応じて、指定した複数の行のうちのいずれかに分岐させるフロー制御ステートメントです。 |
Select Case | 条件式の値に従って、複数のステートメント ブロックのいずれかを実行させるフロー制御ステートメントです。 |
Stop | 実行を中断するフロー制御ステートメントです。 |
While…Wend | 指定した条件が真 (True) である間、一連のステートメントの実行を繰り返すフロー制御ステートメントです。 |
With | オブジェクトやユーザー定義型に対して、一連のステートメントを実行するフロー制御ステートメントです。 |
注意事項
Withはとても便利なステートメントですが、慣れるまでは意識的に使っていく必要があります。
特に先頭のピリオドをつけ忘れるとエラーになってしまうので注意しましょう!
慣れると記述も楽にできて読みやすいコードを書けるのでおすすめです!
最初は意識的に使ってみるのが良さそうだね!
まとめ
今回は「Withステートメント」の使いかたを中心に解説していきました!
使いこなせるとかなり便利で記述が楽になるのでぜひ使ってみてください!
この記事で少しでも皆さんのお役に立てれば幸いです!
忘れないうちにお気に入り登録もお願いします!
ありがとうございました!
コメントはお気軽に!