EXCEL VBA IF…Then…Else..ElseIfの使い方
IF…Then…Elseの使い方
●はじめに
EXCEL VBAでプログラムを作成する上で値を判断して処理を振り分けるには、If..Then..Else.. ElseIfを使う事で、簡単に振り分ける事ができます。条件分岐には、いくつかの手法がありますが、基本的な方法がIf..Then..Else.. ElseIfになります。今後、色々なプログラムを作成する中で、頻繁に利用する機能なので、利用方法等を確認してください。
●書式の説明(IF・Then・Elseの使い方)
1 2 3 4 5 |
IF (条件式) Then ★条件式に一致する場合(処理) Else ▲条件式に一致しない場合(処理) End IF |
●IF..Then..Elseの使用例①
【使用例①】:Aが10の場合はAに10を足す。10以外なら20を足す場合の条件
1 2 3 4 5 |
IF A = 10 Then A = A + 10 Else A = A + 20 End If |
●IF..Then..Elseの使用例②
【使用例②】:Aが70以上の場合は、合格を表示、70未満の場合は不合格と表示する場合の条件
1 2 3 4 5 |
IF A >= 70 Then Msgbox”合格” Else Msgbox”不合格” End If |
●IF文は、演算子の条件によって、処理条件が異なりますので、下表に演算子の条件パターンを記述しました。
(条件式の判定は、Aの数値により判定しています。)
(条件式の判定は、Aの数値により判定しています。)
演算子 | IF文(例) | IF文の条件内容 |
---|---|---|
= | IF A = 10 Then | Aが10と等しければ実行 |
> | IF A < 10 Then | Aが10より小さい(未満)場合に実行 |
< | IF A > 10 Then | Aが10より大きい(超える)場合に実行 |
>= | IF A >= 10 Then | Aが10以上の場合に実行 |
<= | IF A <= 10 Then | Aが10以下の場合に実行 |
<> | IF A <> 10 Then | Aが10以外ならば実行 |
●プログラム説明 (サンプルプログラム①)
下記のサンプルプログラムは、テストの点数を入力して点数が70点以上の時は、合格!70点未満は、不合格とメッセージを表示するプログラムです。
1 2 3 4 5 6 7 8 9 10 11 12 13 |
Sub iftest() Dim A As Long A = inputBox("数値を入力してください") '数値を入力します。 If A >= 70 Then MsgBox "合格です。" '入力した値に対して70以上は合格 Else MsgBox "不合格です。" '入力した値が70未満が不合格 End If End Sub |
●入力値 ※実行後に「数値を入力してください。」と表示されるので、「70」を入力します。 (クリックして拡大)
●実行後 ※入力した値(A)が、IF条件で A>=70 なので、”合格です”と表示されました。 (クリックして拡大)
●プログラム説明 (サンプルプログラム②)
下記のプログラムは、IF文のIF~Thenのみで(ELSE使わない)の条件式でのプログラムを下記に作成しました。
Elseを使わないために、IF文を2段構えで作成しています。このような記述方法でもIF文は利用する事が出来ます。
Elseを使わないために、IF文を2段構えで作成しています。このような記述方法でもIF文は利用する事が出来ます。
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 |
Sub Ifthen02() Dim A As Long A = InputBox("数値を入力してください") '数値を入力します。 If A >= 70 Then 'IF文① MsgBox "合格です。" '入力した値に対して70以上は合格 End If If A < 70 Then 'IF文② MsgBox "不合格です。" '入力した値が70未満が不合格 End If End Sub |
●入力値 ※実行後に「数値を入力してください。」と表示されるので、「70」を入力します。 (クリックして拡大)
●実行後 ※入力した値(A)が、IF文①の条件に該当するので、”合格です”と表示されました。 (クリックして拡大)
IF..Then..ElseIFの使い方 (複数条件)
●プログラム説明 (If..Then..ElseIf の使い方)
続きましてElseIFの使い方を説明いたします。ElseIFを使う事により、複数条件を指定する事ができます。下記のサンプルプログラムは、気温を入力して入力した気温の条件により、コメントを返すプログラムです。複数条件を利用する際には、とても便利な機能なので、下記サンプルを参照して利用方法を確認してください。
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 |
Sub Elseif01() Dim temp As Long temp = InputBox("現在の気温を入力して下さい") If 35 < temp And temp <= 40 Then '条件式:気温が36~40まで MsgBox "超暑いです!" ElseIf 30 < temp And temp <= 35 Then '条件式:気温が31~35まで MsgBox "暑いです" ElseIf 20 < temp And temp <= 30 Then '条件式:気温が21~30まで MsgBox "ちょうど良い気温です。" ElseIf 10 < temp And temp <= 20 Then '条件式:気温が11~20まで MsgBox "やや寒いです。" ElseIf 0 <= temp And temp <= 10 Then '条件式:気温が0~10まで MsgBox "寒いです。" Else MsgBox "気温は 0~40の間で数字を入力して下さい" End If End Sub |
●入力値 ※実行後 「現在の気温を入力して下さい」と表示されるので、気温「25」を入力します。 (クリックして拡大)
●実行後 ※気温「25」を入力しましたので、If..Then..ElseIf 文を確認しますと「条件式:条件式:気温が21~30まで」に該当しますので、「ちょうど良い気温です。」が選択されました。(クリックして拡大)
最後まで、ご覧いただきまして誠に有難うございました。
以上でIF..Then..ElseとElseIFの説明でした。IF文は、プログラム作成において頻繁に使用しますので、上記サンプル等を試して利用方法を理解して下さい。
また、VBAに関するテクニックや便利な手法などをこのサイトに掲載していきますので、定期的に参照していただけると幸いです。
以上でIF..Then..ElseとElseIFの説明でした。IF文は、プログラム作成において頻繁に使用しますので、上記サンプル等を試して利用方法を理解して下さい。
また、VBAに関するテクニックや便利な手法などをこのサイトに掲載していきますので、定期的に参照していただけると幸いです。