VBA IFを使用した条件分岐・複数の条件(And/Or)

ロゴ



The following two tabs change content below.
アバター

taka

あることがキッカケでVBAを独学で勉強しました、今ではブログを通してVBAでできることを解説しつつ、VBAや他の言語の勉強、ブログ運営の勉強をしています(^^♪

どうも、taka(@takabou63)です(^^♪

今回はプログラミングの基本といっても過言ではない、「条件分岐」です(^^)/

VBAだけにとどまらず、プログラムというものはこちらが指定したことしかしてくれないとても融通が利かないものです。なので【もしも〇〇だった場合××を実行】という条件があった場合こちらで指定してあげなければいけません(;^ω^)

この時に必要になるのが「IFステートメントです(^^♪

今回はそんなVBAのIFステートメントについてご紹介していきます!

VBAのIFステートメントの書式

さて、VBAの基本的なIFの書式は4つの組み合わせがあります。これらの書式はよく使うので一通り覚えておきましょう(^^♪

  1. 〇〇だった場合(1)
  2. 〇〇だった場合(2)
  3. 〇〇だった場合は~、〇〇以外だった場合は~
  4. 〇〇だった場合は~、〇〇以外だった場合は~、どちらでもない場合は~

IFの書式1:〇〇だった場合

VBAで【○○だった場合】という処理でIFステートメントを使う場合はこのような感じです。

「Then」というのは「だった場合」という意味として覚えておいてください。

なので上記コードの場合は「変数iが1だったら〇」という意味になるのです(^.^)

IFの書式2:〇〇だった場合その2

書式1と2は処理が1つの場合に限ります、条件が合わなかった場合は何も起きないです。

個人的には書式1はあまり使わずに書式2を使用しています(^_-)-☆

IFの書式3:〇〇だった場合は~、〇〇以外だった場合は~

IFの書式3は【else】を付け加えることによって、条件に合わなかった場合の処理を付け加えることができます(^^)/

IFの書式4:〇〇だった場合は~、〇〇以外だった場合は~、どちらでもない場合は~

IFの書式4は一つ目の条件に合わない場合、【Else IF】の二つ目の条件を判定するという書式です。【ElseIF】は追加が可能です。

注意点
【ElseIF】をあまり多用するとコードの可読性が失ってしまいプログラムの把握がこんなんになってしまう可能性があるためおすすめいたしません。

VBAでIFの複数条件の指定

IFにIFを掛け合わせることによって、二つの条件が満たされたときの処理を設定することができます(^^♪

上のコードでは【iが1の時かつaが2の時にiとaを足す】という条件式です。IFにIFを掛け合わせているだけなので【IF】の数だけ【End IF】が必要です。(End IFが抜けているとエラーになります。)

条件式はいくつか掛け合わせることが可能ですが、複雑になるにつれ可読性が失われていくので、掛け合わせの多用はおすすめしません。

そういう時にはAndやOrを使うのがおススメです(^^)/

VBA IFと論理演算子AndとOr

IFステートメントは論理演算子の「And」と「Or」を仕様して、条件を指定することができます。AndとOrの違いは以下の通りです ^^) _旦~~

And条件1 And 条件2条件1と条件2の両方を満たした場合
Or条件1 Or条件2条件1、条件2のどちらかを満たした場合

And:〇〇かつ××の場合

下記の場合、論理式では「変数(i)が1以上かつ10以下」だった場合を指定しています、変数には5が代入されていますので、メッセージボックスには〇が返されます(^^♪

Or場合:〇〇または××だった場合

下記の場合、論理式では「変数(i)が1または10」だった場合を指定しています、変数には5が代入されていますので、メッセージボックスには×が返されます(^^)/

このようにIFとAndやOrを組み合わせることによって条件分岐ができます、これはExcel操作のIF関数のAnd関数、Or関数を想像していただければわかりやすいかもしれません(^^♪

フォロー・チャンネル登録お願いします

■Twitterフォロー

■YouTubeチャンネル登録

ファイルやコードの利用、WEBサイトの利用について

サンプルコードなどは当サイトの免責事項をよくお読みになってからお使いください。

Sponsored Link

 

WordPressでブログを始めるなら

WordPress簡単インストール&安心の安定性

レンタルサーバー Xserver

ロゴ

コメントを残す

メールアドレスが公開されることはありません。 * が付いている欄は必須項目です