【VBA】VBAで制御文使ってみた(If文)

制御文について

こんにちは!今回は制御文について書きます😃

早速いくよ🛩

VBAの制御文は、『If』と『Select』があります。

今回はIf文について説明します。

Excel関数のIfと似てまーす、、、

というか、IfはExcelよりVBAのが簡単。それでいて、使い勝手がいいと思います。

Excelで、IfとIfの関数組み合わせてるところ見ると、VBAのが簡単なのにな~って思ってしまう😅

ExcelのIfをよく使う人からしたら、すごく簡単に感じると思いますよ👍

ちなみに、繰り返し文と一緒で、制御文もマクロの記録使っても出てきません😩

 

制御文(If文)

冒頭で紹介した通り、制御文には『If』と『Select』があります。

Ifは、使い勝手が良くて複雑な条件を書けます。

Selectは、比較的単純で分岐の多いときに使います。

だから、Selectは法則みたいなものがあって読みやすい。

Ifは使い勝手がいい反面、条件が多くなることが多いので、ごみごみして読みづらくなりがち。

はい、、

しかしながら、Ifでしか書けないこともあるので、

一度、Ifで書いてみて、Selectに切り替えれそうならSelectに切り替える。

それでいいと思います。(やっぱSelectのがメンテも簡単なことが多いしね)

もっと分かりやすく書くと、Selectは法則性・規則性なものに使って、それ以外はIfでいいかなって感じ。

マグロ釣りに例えれば、Selectは『はえ縄漁』で、Ifは『一本釣り』かな

はえ縄漁(Select)

一本釣り(If)

はい、如何に一本釣りが難しいかよくわかりますね。

はえ縄漁(Select)は、1つの変数に対して分岐がたくさんある時、それ以外は一本釣り(If)でいいっす。

幽遊白書で例えると、Ifが『レイガン』で、Selectは『ショットガン』か。

もういいって?

あんまり深く考えないで。次行きましょう。

 

If文の解説

基本的に上から読んで行って、条件が一致した場合にIf内の処理が実行されるっす。

条件式には『比較演算子』と『論理演算子』を使います。

比較演算子

値の比較をするときに使います。

2つの値を『=』『>』『<』などを使って比較し、TrueとFalseで返します。

ちなみ、

『=』は等しい、『<>』は等しくない。

『>』は大なり、『>=』は以上みたいな感じ。

(言語によって少し違ったりするけど、小学生でも理解できる?)

論理演算子

比較演算子によって得られた結果(TrueかFalse)に対して使用します。

『And』は~かつ~、『Or』~もしくは~、『Not』は~ではない。

使用例は一本釣りみたいな感じで使います。

2つの関係(あん肝🐡)

んで、ここで覚えておいて欲しいのは、、、

比較演算子で『True』か『False』で返ってくるので、

今度は、『True』や『False』を論理演算子で計算するということ。

簡単だけど、肝だねぇ👀

 

図で解説

少し難しいので、ちょっと図を使って説明しますね。

先ず、比較演算子↓

比較演算子は、Trueの場合に、その下の行の処理が実行されます。

Falseの場合は、次の分岐へ。分岐がなければ、Ifを抜けます。

次いで、論理演算子↓

Orの場合⇒比較演算子の結果が、どちらか1つでもTrueなら、その下の行の処理が実行されます。

Andの場合⇒比較演算子の結果が、どちら共Trueなら、その下の行の処理が実行されます。

OrもAndも条件を満たさない場合は次の分岐へ。分岐がない場合はIfを抜けます。

最後に、Ifの分岐↓

上から順に条件を見ていって、

条件を満たせば処理、満たさなければ次の分岐。

そして、最終的にはElseの処理が実行されるが、Elseがない場合はIfを抜けます。

 

If文を記述

最後に簡単なIf文を書いて、動作の確認をしてみましょう。

多分、ExcelのIfより簡単に感じた人多いんじゃないかな?

Ifができるようになってきたら、日付や文字の比較もできるし、

Ifをループにぶち込めば、色んな処理も可能になります✨

オメェ、はワクワクしねぇんか?

オラ、ワクワクすっぞ!

 

 

んな感じで、次回はSelectについて書きます😊

悟飯!Selectの次は実践的なやつだ!座学ばっかじゃ挫折すっぞ!

井プログラミング9割挫折

んじゃ、次回も見てくれよな✋