こんにちは!かいけつマクロです。
前回から引き続き、今回も、電卓の自作を進めていきます!
実は、今回のブログを読めば、電卓Ver1が作成完了してしまいます!
どんな電卓に仕上がるか、ぜひ楽しみにしてください!それでは張り切っていきましょう!
四則演算の分岐処理を実装する
さて、さっそく始めていきたいのですが、「四則演算」「分岐処理」「実装」。。。
・・・漢字ばかりでイヤになりそうですね。
でも安心して下さい!
- 四則演算:+、-、×、÷のこと
- 実装:プログラムを記述すること
なので、皆さんが知らないのは、「分岐処理」だけだと思います。この「分岐処理」について、今回のブログでは、しっかり解説をしていきたいと思います。
「分岐」って何?
そんなの言われなくてもわかるよ!
といわれるかもしれませんが、いざ説明しようと思うと、結構難しいですよね。
マクロにおける「分岐」とは、「条件によって、次にやるアクションを振り分けること」と思って下さい。
なんか、よくわからんなー
という感じだと思うので、ここで1つ例を。
例えば、旅行に行くことを考えます。電車を使うか、飛行機に乗るのか、はたまた、自転車で行くのか・・・これらは、目的地までの距離や、その旅行の予算で決めていきますよね!
この旅行の例でいうと、こんな感じになります。
- 条件:目的地までの距離、旅行の予算、同行者の要望、、、etc
- 次のアクション:電車に乗る、飛行機を予約、自転車を倉庫から出す、、、etc
つまり、「条件」が決まれば「次のアクション」が決まるということです。
そして、マクロの世界も同じで、ある条件をマクロに渡してあげると、次のアクションを決めてくれる仕組みのことを、「分岐処理」といいます。
それでは実際に、条件分岐の実装を見ていきましょう!
if文で条件分岐を実装する
条件分岐を実装する方法として、「if文」というものがあります。具体的には、こんな感じで書きます。
If 条件 Then
処理
Else
処理
End If
1つ1つ見ていきましょう。
まず、「If」は、日本語に直すと、
もしも
ですね。そして、Ifの後には条件が来ているので、「もしもこの条件だったら、」という意味になります。
次に「Then」です。これは、「そのときは」という意味です。なので、最初の1行「If 条件 Then」で、「もしもこの条件だったら、そのときは、」ということになります。
そして、1行飛ばして、「Else」。これは、上の「If 条件 Then」の条件に合致しなかったときは、」という意味です。
さらに、またまた1行飛ばして「End If」。これは、そのままですが、「If文終わったよー」ということを、マクロに教えてあげるものになります。
先ほどの旅行の例を考えると、こんな感じになります。
If 目的地までの距離が遠い Then
飛行機を予約する
Else
電車に乗る
End If
「If~~~Then」という部分で条件を記述して、次の行で「処理(=次のアクション)」を記述するという形になっていますね。
この形を、しっかり押さえておきましょう!
それでは、準備ができたので、実際に実装していきましょう。このように記述してください。
'足し算の場合
If operator = "+" Then
'足し算以外の場合
Else
End If
今、こんな感じになっていればOKです。
足し算か、それ以外って、そんなのないよー
そうなんです。
今のままだと、足し算かどうかしか振り分けられないので、全然役に立たないですよね。そこで、次の章では、複数の条件分岐ができるように、少し改造していきます。
・・・ちなみに、何か「’足し算の場合」という行がありますね???
これにピンときた方、GoodJobです!そう!「コメント」です。
もし忘れちゃったなーという方は、第2講で解説しているので、併せてチェックしてみてください。
ElseIfで複雑な条件分岐を実装する
前の章で、条件によって、2つに振り分けることができましたが、実際はもっとたくさんの条件分岐をさせたいことの方が多いと思います。そんな時に役立つのが、「ElseIf」です。
まずは、こちらのように、プログラムを記述していきましょう。
'足し算の場合
If operator = "+" Then
'引き算の場合
ElseIf operator = "-" Then
'掛け算の場合
ElseIf operator = "×" Then
'割り算の場合
ElseIf operator = "÷" Then
End If
画面で見るとこんな感じです。
「ElseIf 条件 Then」と記述することで、上で見た「If」と同じように、分岐を作ることができるということですね!
これで、分岐処理の実装は完了です!続いて、間の「処理(=アクション)の部分を記述していきます。上の旅行の例でいうと、「飛行機を予約する」とか「電車に乗る」とかの部分です!
四則演算を行い、結果をセルに反映する
実は、この「セルに反映する」というのは、第1講、第2講で一度やっています。なので、安心して学習を進めていきましょう!
計算結果を代入する
またまた出てきました。「代入」です。代入とは、こんなイメージで、「=」で記述するんでした。
この「代入」を使って、四則演算の結果をセルに反映していきます。
それでは、こちらのプログラムを記述してください。
'足し算の場合
If operator = "+" Then
Cells(4, 6).Value = a + b
'引き算の場合
ElseIf operator = "-" Then
Cells(4, 6).Value = a - b
'掛け算の場合
ElseIf operator = "×" Then
Cells(4, 6).Value = a * b
'割り算の場合
ElseIf operator = "÷" Then
Cells(4, 6).Value = a / b
End If
画面で見ると、こんな感じ。
1つ1つの「If条件Then」や「ElseIf条件Then」のブロックに、代入処理を記述していった、ということですね。
これで一気にプログラミングっぽくなりましたね!
・・・でも、ちょっと待ってください。何やら「*」とか「/」とか見慣れない記号がありませんか?大丈夫!全然難しくありません。以下の記号を表しています。(なんでこんなわかりにくい書き方するんだろう?)
- *:掛け算
- /:割り算
さて、おめでとうございます。これで、電卓Ver1が晴れて完成しました!!!!
次の章では、この電卓を実際に動かして、試してみましょう。
・・・とその前に、このあたりで「Ctrl+s」で保存しておくのをお忘れなく~~~
電卓を動かしてみよう
それでは早速、電卓を動かしてみましょう!まずはこんな感じで、Excelに「値」と「四則演算」を入力します。
そうしたら、VBEの画面で、実行をしてみましょう。VBEは、上の「▶」を押して実行するんでした。
・・・すると、どうですか?ExcelのF4セルに、計算結果が正しく反映されてませんか??
それでは、次に、引き算をやってみましょう。先ほどの続きで、このように入力してみましょう。
そして、先ほどと同じように、VBEで「F5」を押すか、「▶」をクリックすると、、、
結果がマイナスになる引き算でも、正しく計算できることがわかりましたね!
ぜひ、いろいろと試してみてください!
本日のまとめ
今回は、「If文」や「ElseIf文」を使って電卓Ver1を完成させました!
こちらの電卓で、普通に使えはするのですが、できれば、もう少し、バージョンアップしていきたいですよね。
そこで次回は、インプットボックスから、数字や四則演算を入力できるようにするようにして、電卓を、「さらに使えるもの」に作り替えていきたいと思います。ぜひ、次回もお楽しみにしてください。それでは!
コメント