足し算や掛け算をずーっと楽しむことができるGoogle Apps Scriptです。お子様の学習に役立つかもしれ・・・ません。
特にありません。スプレッドシートに組み込むだけですが、このスクリプトはトリガーを利用します。
シート上に計算問題が用意され、答えを入力すると正誤判定が行われます。
正解なら次の問題へ、不正解ならアラートが表示されます。
終わりはありませんので無限にドリルを解くことができます。
足し算モードと掛け算モードを用意しています。
メニューから「無限ドリルを開始する」を選択すると、問題や解答入力欄が用意されます。
足し算モードと掛け算モードがあるのでお好きな方を起動してください。
あとはひたすらドリルを楽しむだけです。
正解すると右の「連続正解」が増えていきます。
不正解だと「まちがっているみたい・・・」とアラートが出て、連続正解数がリセットされてしまいます。
/**
* このスクリプトの説明、使い方はこちら。
* https://myfunc.jp/items/00029/index.html
*/
function onOpen() {
// スプレッドシートを開いたときに実行される関数
const ui = SpreadsheetApp.getUi()
// メニューの表示名
const menu = ui.createMenu('スクリプト実行');
// メニューに追加するボタン
menu.addItem('無限ドリル(足し算)を開始する', 'initialize_drill_addition');
menu.addItem('無限ドリル(掛け算)を開始する', 'initialize_drill_multiplication');
// メニューを画面に追加する
menu.addToUi();
}
function initialize_drill_addition(){
// addItemには関数の引数が入れられないようなので1つ挟む
initialize_drill('+');
}
function initialize_drill_multiplication(){
// addItemには関数の引数が入れられないようなので1つ挟む
initialize_drill('✕');
}
function initialize_drill(operation) {
const ss = SpreadsheetApp.getActiveSpreadsheet(); // スプレッドシートを呼び出す
const sheet = ss.getActiveSheet(); // アクティブなシートを呼び出す
let range = sheet.getRange(1, 1, 2, 7); // A1を起点に、入力欄などを用意する
values = []; // 書き込み用の配列
values[0] = []; // 書き込み用の配列(1行目)
values[1] = []; // 書き込み用の配列(2行目)
values[0][0] = '問題';
values[0][4] = '答え';
values[0][6] = '連続正解';
values[1][0] = Math.floor(Math.random() * 100); // 計算式の左辺
values[1][1] = operation; // 足し算 or 掛け算
values[1][2] = Math.floor(Math.random() * 100); // 計算式の右辺
values[1][3] = '=';
values[1][6] = 0; // 連続正解数の初期値
range.setValues(values); // セルへ書き込み
range.setFontSize(18); // フォントサイズを指定
range.setHorizontalAlignment('center'); // 水平方向の位置を指定
range.setVerticalAlignment('middle'); // 垂直方向の位置を指定
range.setBackgroundRGB(255, 255, 255); // 背景色を指定
range.setBorder(true, true, true, true, true, true, "BLACK", SpreadsheetApp.BorderStyle.SOLID_THICK); // 罫線の指定
}
function onEdit(e) {
// 変更されたセルが解答入力欄以外の場合は何もしない
if(e.range.getA1Notation() != 'E2'){
return;
}
const ss = SpreadsheetApp.getActiveSpreadsheet(); // スプレッドシートを取得
const sheet = ss.getActiveSheet(); // アクティブなシートを呼び出す
let range = sheet.getRange(2, 1, 1, 7); // A2を起点に必要な範囲を取得
let values = range.getValues(); // 値を2次元配列で取得
const ui = SpreadsheetApp.getUi(); // 不正解時にアラートを出すため、UIを取得
let answer_input = values[0][4]; // 入力された答え
let formula_left = values[0][0]; // 計算式の左辺
let formula_right = values[0][2]; // 計算式の右辺
let operation = values[0][1]; // 四則演算タイプ(+ / ✕)
let correct_answer_count = values[0][6]; // 連続正解数
let answer_correct = ''; // 正解を入れる変数
// 正しい答えを計算する
if (operation == '+') {
answer_correct = formula_left + formula_right;
} else if (operation == '✕') {
answer_correct = formula_left * formula_right;
}
let values_update = values[0]; // セルの更新用配列
if (answer_input == answer_correct) {
// 正解なら連続正解数を更新する
if (correct_answer_count >= 0) {
values_update[6] = correct_answer_count + 1;
} else {
values_update[6] = 1;
}
// 答え入力欄を消去する
values_update[4] = '';
// 問題を更新する
values_update[0] = Math.floor(Math.random() * 100);
values_update[2] = Math.floor(Math.random() * 100);
} else {
ui.alert('まちがってるみたい・・・');
values_update[6] = 0; // 不正解時は連続正解数をリセット
}
range.setValues([values_update]); // 新しい問題や連続正解数などをセルに書き込み
sheet.getRange(2,5,1,1).activate(); // 続けて回答ができるように答え入力セルに移動する
}
九九の表を出力するGoogle Apps Scriptです。なかなか使うことが無さそうですが、オリジナルの掛け算表を作ったりする時にどうぞ。何段でも出せたり逆順に出来たりとちょっと便利にしておきました。
スプレッドシートに書き込んだ日本語から色々な言語に翻訳することができるGoogle Apps Scriptです。変換先の言語は指定できます。標準で用意されている「GOOGLETRANSLATE関数」より賢く翻訳してくれるはず?
セルに文章を入力するとリアルタイムで隣のセルに翻訳結果が表示されるGoogle Apps Scriptです。思いついた文章を翻訳しつづけたいときにどうぞ。