https://script.google.com/home/projects/1Np6F1VOgWiph580d3HJXPzlpqh2Ib8fmVULD9Vdys_hw29VYZ2HNAkOd/edit
// ランダムな4桁の数字を生成する
function getRandomNum() {
// 0~9までの数字の配列
// 先頭に0が来て3桁にならないように、シート側も表示形式を設定
var digits = ['0', '1', '2', '3', '4', '5', '6', '7', '8', '9'];
// 配列をランダムに並べ替える
var shuffledDigits = shuffleArray(digits);
// 最初の4つの数字を結合して4桁の数字を作成
var random4Digits = shuffledDigits.slice(0, 4).join('');
return random4Digits.toString();
}
// 配列をランダムに並び替える
function shuffleArray(digits) {
if (!digits || !digits.length) {
return digits; // 空の配列をそのまま返す
}
//Fisher-Yatesのシャッフルアルゴリズム
for (var i = digits.length - 1; i > 0; i--) {
var j = Math.floor(Math.random() * (i + 1));
var temp = digits[i];
digits[i] = digits[j];
digits[j] = temp;
}
return digits;
}
// スプレッドシートにランダムな4桁の数字を書き込む
function writeRandomNumberToSheet() {
//テンプレート
var sheet = SpreadsheetApp.getActiveSpreadsheet().getActiveSheet();
// シートのA1セルにランダムな4桁の数字を書き込む
sheet.getRange('A1').setValue(getRandomNum());
// 正解の数字を白で表示して隠す
var range = sheet.getRange('A1'); // 非表示にしたいセルの範囲を指定
range.setFontColor('#FFFFFF'); // フォント色を白に設定(背景色が白の場合)
}
// 正解の4桁の数を別のセルに1数字ずつ格納する
function correctNum() {
// テンプレート
var sheet = SpreadsheetApp.getActiveSpreadsheet().getActiveSheet();
// A1セルの4桁の数字を取得
var randomNumber = sheet.getRange('A1').getValue().toString();
// 4桁の数字を配列に変換
var digitsArray = randomNumber.split(''); // 文字列を1文字ずつ分解して配列にする
// 分解した各数字をB8, C8, D8, E8に出力
for (var i = 0; i < digitsArray.length; i++) {
sheet.getRange(8, i + 2).setValue(digitsArray[i]); // 1行目のB列(2列目)からE列(5列目)に出力
}
}