さぁ今回も前回の答え合わせからいきましょう!
マイナスボタンのコードはこんな感じでいかがでしょう?
function button_minus() {
var i = A2;
if ((A2 != null && A2 != “” && A2 != 0 )){
sheet.getRange(“B2”).setValue(1);
sheet.getRange(“C2”).setValue(i);
sheet.getRange(“D2”).setValue(“-“);
} else {
}
}
イコールボタンで色々設定しているので、計算式に対応したテキストを入力するだけで解決でしたね。
ほら、簡単すぎてこれで終わり・・・、とはならないんですよね。\
省略してここで終わりというのもアリではあるんですが・・・。
ここで電卓をもう一度確認してみましょう。
例えば、足し算を繰り返し行うとき。
2+3+4+5+・・・
こんな計算をしているとき、押しているボタンと表示される数字はどうなっているでしょう。
そして、それが現状でその通りの挙動をしていないことが分かると思います。
数字2入力-画面に2→プラスボタン-画面に2→数字3入力-画面に3→プラスボタン-画面に5→数字4入力-画面に4→プラスボタン-画面に9→数字5入力-画面に5→プラスボタン-画面に14・・・
こんな表示になっているはず。
これは、一度プラスボタンを押して一時記録された数字がある状態で次の数値を入力して、イコールを押さずにプラスボタンを押した時に、押されていた計算式の計算処理が行われています。
つまり、プラスやマイナスのボタンは、その前に押されていた計算式が存在したら、その計算をする必要があるということです。
ということは、正しいマイナスボタンのコードはこうですね。
function button_minus() {
if ((A2 != null && A2 != “” && A2 != 0 )){
switch (D2) {
case “+”:
var i = A2+C2;
break;
case “-“:
var i = C2-A2;
break;
case “*”:
var i = A2*C2;
break;
case “/”:
var i = A2/C2;
break;
default:
var i = A2;
break;
}
sheet.getRange(“A2”).setValue(i);
sheet.getRange(“B2”).setValue(1);
sheet.getRange(“C2”).setValue(i);
sheet.getRange(“D2”).setValue(“-“);
} else {
}
}
電卓って本当に面倒な処理をしていることが分かりますね。
最初に作られた電卓が、業務用デスクサイズだったことも納得がいくものです。
でも、そんな偉業と同じコードがあなたも書けたということです。
自信もっていきましょう!
では、これにそろえて掛け算と割り算も設定しちゃいましょう。
これで色々試してみて問題なければ完全に電卓の完成です。
おかしなところは無いでしょうか?
やってみたいことは出来ましたでしょうか?
自分でコードがかけると自信をもって言えるようになりましたでしょうか?
せめて、Googleスプレッドシートは任せて!と言えるようになっていただけたら、幸いです。
電卓は完成ですが、もう1回だけブログは続きます。
最後は一応、全コードを載せるので参考にしていただきますようお願いします。
次回、最終回です!
コメント