もくじ

taka



最新記事 by taka (全て見る)
- 『雑記』最近の私の話~ - 2019年9月26日
- 【動画】自作パソコン構成変更!ケースをNZXT H500に交換しました! - 2019年6月5日
- VBA 『Array関数』指定した要素で配列を作成する - 2019年5月23日
- 「動画」初完全ワイヤレスイヤホン『Jabra Elite Active 65t』 - 2019年5月17日
- VBA 日付で令和を簡単に判定してみよう - 2019年5月7日
どうも、taka(@takabou63)です(^^♪
今回はプログラミングの基本といっても過言ではない、「条件分岐」です(^^)/
VBAだけにとどまらず、プログラムというものはこちらが指定したことしかしてくれないとても融通が利かないものです。なので【もしも〇〇だった場合××を実行】という条件があった場合こちらで指定してあげなければいけません(;^ω^)
この時に必要になるのが「IFステートメント」です(^^♪
今回はそんなVBAのIFステートメントについてご紹介していきます!
VBAのIFステートメントの書式
さて、VBAの基本的なIFの書式は4つの組み合わせがあります。これらの書式はよく使うので一通り覚えておきましょう(^^♪
- 〇〇だった場合(1)
- 〇〇だった場合(2)
- 〇〇だった場合は~、〇〇以外だった場合は~
- 〇〇だった場合は~、〇〇以外だった場合は~、どちらでもない場合は~
IFの書式1:〇〇だった場合
VBAで【○○だった場合】という処理でIFステートメントを使う場合はこのような感じです。
Sub sample() i = 1 '変数iが1だったら〇 If i = 1 Then MsgBox "〇" End Sub
「Then」というのは「だった場合」という意味として覚えておいてください。
なので上記コードの場合は「変数iが1だったら〇」という意味になるのです(^.^)
IFの書式2:〇〇だった場合その2
書式1と2は処理が1つの場合に限ります、条件が合わなかった場合は何も起きないです。
個人的には書式1はあまり使わずに書式2を使用しています(^_-)-☆
Sub sample() i = 1 If i = 1 Then'変数iが1だったら〇 MsgBox "〇" End If End Sub
IFの書式3:〇〇だった場合は~、〇〇以外だった場合は~
IFの書式3は【else】を付け加えることによって、条件に合わなかった場合の処理を付け加えることができます(^^)/
Sub sample() i = 1 If i = 1 Then '変数iが1だったら〇 MsgBox "〇" Else '変数iが1以外だったら× MsgBox "×" End If End Sub
IFの書式4:〇〇だった場合は~、〇〇以外だった場合は~、どちらでもない場合は~
IFの書式4は一つ目の条件に合わない場合、【Else IF】の二つ目の条件を判定するという書式です。【ElseIF】は追加が可能です。
【ElseIF】をあまり多用するとコードの可読性が失ってしまいプログラムの把握がこんなんになってしまう可能性があるためおすすめいたしません。
Sub sample() i = 3 If i = 1 Then '変数iが1だったら〇 MsgBox "〇" ElseIf i = 2 Then '変数iが2だったら× MsgBox "×" Else '上記の条件意外だった場合 MsgBox "1 、2以外です" End If End Sub
VBAでIFの複数条件の指定
IFにIFを掛け合わせることによって、二つの条件が満たされたときの処理を設定することができます(^^♪
Sub sample() i = 1 a = 2 If i = 1 Then If a = 2 Then i = i + a MsgBox i End If End If End Sub
上のコードでは【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が代入されていますので、メッセージボックスには〇が返されます(^^♪
Sub sample() i = 5 If i > 1 And i < 10 Then MsgBox "〇" Else MsgBox "×" End If End Sub
Or場合:〇〇または××だった場合
下記の場合、論理式では「変数(i)が1または10」だった場合を指定しています、変数には5が代入されていますので、メッセージボックスには×が返されます(^^)/
Sub sample() i = 5 If i = 1 Or i = 10 Then MsgBox "〇" Else MsgBox "×" End If End Sub
このようにIFとAndやOrを組み合わせることによって条件分岐ができます、これはExcel操作のIF関数のAnd関数、Or関数を想像していただければわかりやすいかもしれません(^^♪
フォロー・チャンネル登録お願いします
VBA以外についてのブログはこちら↓
https://yb-log.com/■Twitterフォロー
Follow @taka_pc1027■YouTubeチャンネル登録
コメントを残す