// Googleドキュメントにカスタムメニューを追加 function onOpen() { DocumentApp.getUi().createMenu('Dice Roller') .addItem('Roll a Dice', 'showDicePrompt') .addToUi(); } // ダイスを振る関数 function rollDice(sides) { return Math.floor(Math.random() * sides) + 1; } // ダイスの結果を表示する関数 function showDicePrompt() { var ui = DocumentApp.getUi(); // ダイスの個数と面数を一括で入力するプロンプトを表示 var response = ui.prompt('振るダイスの個数と面数を「個数 面数」の形式で入力してください。', '例: 3 6', ui.ButtonSet.OK_CANCEL); if (response.getSelectedButton() == ui.Button.OK) { var input = response.getResponseText().split(' '); var numberOfDice = parseInt(input[0]); var sides = parseInt(input[1]); if (isNaN(numberOfDice) || numberOfDice < 1 || isNaN(sides) || sides < 1) { ui.alert('有効なダイス数と面数を入力してください。'); return; } // ダイスを振って結果を取得 var results = []; var sum = 0; for (var i = 1; i <= numberOfDice; i++) { var result = rollDice(sides); results.push(result); sum += result; } // 結果を一括で表示 var resultText = '振ったダイス: ' + numberOfDice + ' 個の ' + sides + ' 面ダイス\n'; resultText += '結果: (' + results.join(', ') + ') 合計 = ' + sum + '\n'; // カーソル位置に結果を挿入 var doc = DocumentApp.getActiveDocument(); var cursor = doc.getCursor(); if (cursor) { // カーソルの位置に結果を挿入 var element = cursor.insertText(resultText); if (element) { ui.alert('結果:\n' + resultText); } else { ui.alert('選択している箇所にテキストを挿入できませんでした。'); } } else { ui.alert('カーソル位置が見つかりませんでした。'); } } }