【知らないと損!?】初心者が学ぶと効率UP!Withステートメントの使い方!

こんにちは!『ルウちゃんのExcel Labo』管理人の@rouxchanblogです!

今回はこのような悩みについて解説します。

ルウちゃん

Withってよく出てくるけどどんな役割なの?
どんな時に使うのか教えて!

この記事でわかるようになること
  1. Withステートメントを使うメリット
  2. ステートメントの意味
  3. 使う上での注意事項←超重要
目次

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」なんかがそれに当たります。

一つ一つ覚える必要はありませんが、一覧表見てどのような役割を持っているか確認してみてください!

スクロールできます
名前役割
allSub プロシージャ、Function プロシージャ、ダイナミック リンク ライブラリ (DLL) プロシージャに制御を渡すフロー制御ステートメントです。
Do…Loop指定した条件が真 (True) である間、または条件が真 (True) になるまで、一連のステートメントを繰り返し実行するフロー制御ステートメントです。
Endプロシージャ (Sub,Function,Property) やブロック (If,Select,Type,With) を終了させるフロー制御ステートメントです。
End単独で使用した場合は、VBA実行を直ちに終了させ、変数等の状態をクリアします。
ExitDo…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オブジェクトやユーザー定義型に対して、一連のステートメントを実行するフロー制御ステートメントです。
引用:Excelの神髄

注意事項

Withはとても便利なステートメントですが、慣れるまでは意識的に使っていく必要があります。

特に先頭のピリオドをつけ忘れるとエラーになってしまうので注意しましょう!

慣れると記述も楽にできて読みやすいコードを書けるのでおすすめです!

ルウちゃん

最初は意識的に使ってみるのが良さそうだね!

まとめ

今回は「Withステートメント」の使いかたを中心に解説していきました!

使いこなせるとかなり便利で記述が楽になるのでぜひ使ってみてください!

この記事で少しでも皆さんのお役に立てれば幸いです!

忘れないうちにお気に入り登録もお願いします!

ありがとうございました!

/// お得な情報 ///

すぐに使えて便利なテクニックが650個も手に入る!

気になる人は今すぐクリック!!

 

目次