前回にて、コードそのものは完成していると思います。
ですが、switch case式の全く同じものが=+-*/のそれぞれに入ってしまったので、5つも同じコードがかかれているはずです。
だったら外に出してまとめてしまいましょう。
/*基準計算をまとめる*/
function calculation() {
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);
}
これで、必要な5か所にcalculation式を入れるだけで呼び出せるようになりましたね。
ということで、長くなりますが全てのコードをここに書いておきます。
/*共通する宣言文を事前にまとめる*/
spreadsheet = SpreadsheetApp.getActive();
sheet = spreadsheet.getActiveSheet();
A2 = sheet.getRange(“A2”).getValue();
B2 = sheet.getRange(“B2”).getValue();
C2 = sheet.getRange(“C2”).getValue();
D2 = sheet.getRange(“D2”).getValue();
/*open時にクリアを実行*/
function onOpen() {
button_clear();
}
function button_clear() {
/*すべてのセルデータを削除*/
sheet.getRange(1, 1, sheet.getMaxRows(), sheet.getMaxColumns()).activate();
spreadsheet.getActiveRangeList().clear({contentsOnly: true, skipFilteredRows: true});
/*1行目にテキストを代入*/
sheet.getRange(“A1”).setValue(“計算画面”);
sheet.getRange(“B1”).setValue(“ロック”);
sheet.getRange(“C1”).setValue(“ストック値”);
sheet.getRange(“D1”).setValue(“計算式”);
/*A2セルに0を代入*/
sheet.getRange(‘A2’).setValue(0);
/*B2セルに0を代入*/
sheet.getRange(‘B2’).setValue(0);
}
/*基準計算をまとめる*/
function calculation() {
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);
}
function button_equal() {
if ((A2 != null && A2 != “” && A2 != 0 )){
calculation();
sheet.getRange(“B2”).setValue(1);
sheet.getRange(“C2”).setValue(null);
sheet.getRange(“D2”).setValue(null);
} else {
}
}
function button_plus() {
if ((A2 != null && A2 != “” && A2 != 0 )){
calculation();
sheet.getRange(“D2”).setValue(“+”);
} else {
}
}
function button_minus() {
if ((A2 != null && A2 != “” && A2 != 0 )){
calculation();
sheet.getRange(“D2”).setValue(“-“);
} else {
}
}
function button_multiply() {
if ((A2 != null && A2 != “” && A2 != 0 )){
calculation();
sheet.getRange(“D2”).setValue(“*”);
} else {
}
}
function button_divide() {
if ((A2 != null && A2 != “” && A2 != 0 )){
calculation();
sheet.getRange(“D2”).setValue(“/”);
} else {
}
}
function button0() {
if ((A2 != null && A2 != “” && A2 != 0 && B2 != 1)){
sheet.getRange(“A2”).setValue(A2*10+0);
} else {
sheet.getRange(“A2”).setValue(0);
}
sheet.getRange(“B2”).setValue(0);
}
function button1() {
if ((A2 != null && A2 != “” && A2 != 0 && B2 != 1)){
sheet.getRange(“A2”).setValue(A2*10+1);
} else {
sheet.getRange(“A2”).setValue(1);
}
sheet.getRange(“B2”).setValue(0);
}
function button2() {
if ((A2 != null && A2 != “” && A2 != 0 && B2 != 1)){
sheet.getRange(“A2”).setValue(A2*10+2);
} else {
sheet.getRange(“A2”).setValue(2);
}
sheet.getRange(“B2”).setValue(0);
}
function button3() {
if ((A2 != null && A2 != “” && A2 != 0 && B2 != 1)){
sheet.getRange(“A2”).setValue(A2*10+3);
} else {
sheet.getRange(“A2”).setValue(3);
}
sheet.getRange(“B2”).setValue(0);
}
function button4() {
if ((A2 != null && A2 != “” && A2 != 0 && B2 != 1)){
sheet.getRange(“A2”).setValue(A2*10+4);
} else {
sheet.getRange(“A2”).setValue(4);
}
sheet.getRange(“B2”).setValue(0);
}
function button5() {
if ((A2 != null && A2 != “” && A2 != 0 && B2 != 1)){
sheet.getRange(“A2”).setValue(A2*10+5);
} else {
sheet.getRange(“A2”).setValue(5);
}
sheet.getRange(“B2”).setValue(0);
}
function button6() {
if ((A2 != null && A2 != “” && A2 != 0 && B2 != 1)){
sheet.getRange(“A2”).setValue(A2*10+6);
} else {
sheet.getRange(“A2”).setValue(6);
}
sheet.getRange(“B2”).setValue(0);
}
function button7() {
if ((A2 != null && A2 != “” && A2 != 0 && B2 != 1)){
sheet.getRange(“A2”).setValue(A2*10+7);
} else {
sheet.getRange(“A2”).setValue(7);
}
sheet.getRange(“B2”).setValue(0);
}
function button8() {
if ((A2 != null && A2 != “” && A2 != 0 && B2 != 1)){
sheet.getRange(“A2”).setValue(A2*10+8);
} else {
sheet.getRange(“A2”).setValue(8);
}
sheet.getRange(“B2”).setValue(0);
}
function button9() {
if ((A2 != null && A2 != “” && A2 != 0 && B2 != 1)){
sheet.getRange(“A2”).setValue(A2*10+9);
} else {
sheet.getRange(“A2”).setValue(9);
}
sheet.getRange(“B2”).setValue(0);
}
電卓にはいくつか種類があって、これ以外のボタンがついているものもあります。
色々やってみるうちの一つとして、どれか挑戦してみてもいいかも知れません。
特に、マイナスボタンに関してですが、画面に0が表示されている時に押すと次に押された数字が負の値になります。
最後にマイナスボタンを直す挑戦をしてみましょう。
答えは書きません。
自分の力で達成したと、自信をもって言えるように頑張ってみましょう!
コメント