Skip to content

Instantly share code, notes, and snippets.

@Tomokatsu-Sakamoto
Created January 12, 2023 15:35
Show Gist options
  • Save Tomokatsu-Sakamoto/361524ab1237a245882a2a327c545825 to your computer and use it in GitHub Desktop.
Save Tomokatsu-Sakamoto/361524ab1237a245882a2a327c545825 to your computer and use it in GitHub Desktop.
"use strict"; // 変数の宣言を強要する
/** @OnlyCurrentDoc */ // 他のファイルにはアクセスしない
function onOpen() {
SpreadsheetApp.getUi()
.createMenu('追加メニュー')
.addItem('フォーム URL の生成', 'addFormURL')
.addToUi();
}
/***
* カーソルのある行の内容をもとにして、「アクティビティレポート」への報告用のリンクを生成する。
*/
function addFormURL() {
let sheet = SpreadsheetApp.getActiveSheet(); // 現在開いているスプレッドシート
let row = sheet.getActiveRange().getRow();
let column = sheet.getActiveRange().getColumn();
console.log("Active : " + row + "," + column);
if (row != 1) { // 先頭行でなければ処理する
const ra1 = sheet.getRange(row, 1).getValue(); // ラジオ1
const ra2 = sheet.getRange(row, 2).getValue(); // ラジオ2
const ra3 = sheet.getRange(row, 3).getValue(); // ラジオ3
const ch1 = sheet.getRange(row, 4).getValue(); // チェック1
const ch2 = sheet.getRange(row, 5).getValue(); // チェック2
const ch3 = sheet.getRange(row, 6).getValue(); // チェック3
const date = sheet.getRange(row, 7).getValue(); // 日付
const str1 = sheet.getRange(row, 8).getValue(); // 日付
const str2 = sheet.getRange(row, 9).getValue(); // 日付
let formatDate = Utilities.formatDate(date, "JST", "yyyy-MM-dd");
// 提供された回答用の URL(ベース)
let url = 'https://docs.google.com/forms/d/e/1FAIpQLScrV1ATXWsCkJsJKbBg5LPsmo0O_pFE-v2-pNr2cQBXzoVEjw/viewform';
url += '?usp=pp_url';
/**
* ラジオボタン → 74621491
*/
if (ra1 == true) {
url += '&entry.74621491=' + encodeURIComponent('ラジオ1');
}
else if (ra2 == true) {
url += '&entry.74621491=' + encodeURIComponent('ラジオ2');
}
else if (ra3 == true) {
url += '&entry.74621491=' + encodeURIComponent('ラジオ3');
}
/**
* チェックボックス → 1879337662
*/
if (ch1 == true) {
url += '&entry.1879337662=' + encodeURIComponent('チェック1');
}
if (ch2 == true) {
url += '&entry.1879337662=' + encodeURIComponent('チェック2');
}
if (ch3 == true) {
url += '&entry.1879337662=' + encodeURIComponent('チェック3');
}
/**
* 日付 → 172083090
*/
url += '&entry.172083090=' + formatDate;
/**
* テキスト1 → 1342888776
*/
url += '&entry.1342888776=' + encodeURIComponent(str1);
/**
* テキスト2 → 1782925682
*/
url += '&entry.1782925682=' + encodeURIComponent(str2);
sheet.getRange(row, 10).setValue(url);
sheet.getCurrentCell().offset(1, 0).activate(); // 次の行に移動
}
}
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment