![GASで足し算問題](http://take-web.com/task_help/wp-content/uploads/2020/11/Google_gas_足し算.png)
![](http://take-web.com/task_help/wp-content/themes/cocoon-master/images/man.png)
Google Sheetはグーグルのサービスで、ブラウザ上で表計算を利用することができます。
VBAのようなスクリプト言語「GAS」があります。GASでシートを操作することできます。
sheetだけでなく、googleの他のサービスと連携も得意のようです。できるかどうか私にはわかりませんが、LineとかTwitterとも連携ができそうです。
セルにランダムな値を入れる
function myFunction() {
const sheet=SpreadsheetApp.getActiveSheet();
sheet.getRange('A2').setValue(23);
sheet.getRange(3,2).setValue(100);
}
まず、シートを特定しないとだめです。
getRange = セルの番地
セルにランダムな数
function rndN(){
n=Math.floor(Math.random()*100+1);
return n;
}
Javascriptと同じ、100までの乱数を作る
setValue(‘=’) エラーになる
![](https://take-web.com/task_help/wp-content/uploads/2023/03/string_notWork02.png)
うまくいかないので、=全角にした。
セルの値を消す
sheet.getRange('E2').clearContent();
clearContent()で消えます。ただし、入力の途中はだめ
数値入れたら、スクリプト発動
=の次のセルに合計値入れたら、正解かどうか判定させたい。
4+6=??
変更されたセルの番地を取得
function onEdit(e){
Browser.msgBox(e.range.getRow()+" // "+e.range.getColumn()); //行・列番号
}
メッセージボックスは:
Browserが必要、msgBox Bは大文字
特定セルの監視
function onEdit(e){
//編集されたセルの行数を取得
let row = e.range.getRow();
//編集されたセルの列数を取得
let col = e.range.getColumn();
//編集されたセルが指定セルだったら実行
if(row == 2 && col == 5){
Browser.msgBox("ok");
}
}
足し算の答え入れ、あっているかチェックする
function onEdit(e){
const sheet=SpreadsheetApp.getActiveSheet();
a=sheet.getRange('A2').getValue();
b=sheet.getRange('C2').getValue();
c=a+b;
//編集されたセルの行数を取得
let row = e.range.getRow();
//編集されたセルの列数を取得
let col = e.range.getColumn();
//編集されたセルが指定セルだったら実行
if(row == 2 && col == 5){
if(c==sheet.getRange('E2').getValue()){
Browser.msgBox('正解!');
}else{
Browser.msgBox('だめ'+(a+b));
}
}
}
![](https://take-web.com/task_help/wp-content/uploads/2023/03/gas_check01.png)
セルの値が変更になったら、スクリプトが動く。
セルをアクティブにする
sheet.getRange('E2').activate();
コメント