GASを使用してGoogleフォームの回答の一部を自動的にスプレッドシートの特定の列に転記する方法を説明します。
コードの説明も添えていますので、理解しやすくなると思います。
googleフォーム→スプレッドシート自動転記!Googleフォームに回答があったことを起点として、GASを発火させる方法
function answer(e)
を発火させるためには、Google Apps Scriptでトリガーを設定する必要があります。
以下に、トリガーを設定する手順を示します。
①Google Apps Script エディタを開きます。
②スクリプトの左メニューバーから「トリガー」をクリックします。
③トリガーの設定画面が表示されますので、「トリガーを追加」をクリックします。
④トリガーの作成画面で以下の設定を行います。
- 実行する関数:
answer
- イベントのソース:「フォームから」を選択
- イベントの種類:「フォーム送信時」を選択
⑤設定が完了したら、「保存」をクリックしてトリガーを有効化します。
これにより、フォームが送信されるたびに function answer(e)
が発火し、指定した処理が実行されます。
googleフォーム→スプレッドシート自動転記!フォームの回答を取得してスプレッドシートの特定の列に転記する方法
// フォームの回答を取得してスプレッドシートの特定の列に転記する
function answer(e) {
const values = e.response.getItemResponses();
const targetIndex = 2; // 転記先の列のインデックス(1から始まる)
// 回答から特定の項目を取得
let targetValue = values[0].getResponse(); // 例: 回答の1番目の項目を取得
const ssid = 'スプレッドシートID';
const sht = SpreadsheetApp.openById(ssid).getSheetByName('test');
const lrow = sht.getLastRow();
sht.getRange(lrow + 1, targetIndex).setValue(targetValue);
}
このサンプルコードでは、フォームの回答から特定の項目を取得して、指定された列に転記する処理を行います。
具体的な手順は以下の通りです:
answer
関数はフォームの回答を受け取るトリガーとして設定します。getItemResponses()
メソッドを使用して、回答の全ての項目を取得します。targetIndex
変数で指定されたインデックスに対応する回答の値を取得します。この例では、回答の1番目の項目を取得しています。必要に応じて、他の項目に対しても同様の手順を追加で実行できます。ssid
変数には対象のスプレッドシートのIDを設定します。sht
変数にはスプレッドシートのIDを使用してシートを開き、getSheetByName()
メソッドを使用して対象のシートを取得します。lrow
変数でシートの最終行を取得します。sht.getRange(lrow + 1, targetIndex).setValue(targetValue);
のコードを使用して、取得した値を指定された列に転記します。lrow + 1
は最終行の次の行に値をセットすることを意味しています。
このコードを使用すると、指定した項目の回答がフォームから送信されるたびに、スプレッドシートの指定された列に値が自動的に転記されます。
googleフォーム→スプレッドシート自動転記!複数の項目を効率的に転記する方法
サンプルコードを示します。
// フォームの回答を取得してスプレッドシートの特定の列に転記する(複数の項目)
function answer(e) {
const values = e.response.getItemResponses();
const targetColumns = [2, 4, 6]; // 転記先の列のインデックス(1から始まる)
const targetValues = [];
// 転記する項目を取得
for (let i = 0; i < targetColumns.length; i++) {
targetValues.push(values[i].getResponse());
}
const ssid = 'スプレッドシートID';
const sht = SpreadsheetApp.openById(ssid).getSheetByName('test');
const lrow = sht.getLastRow();
// 項目を転記する
for (let i = 0; i < targetColumns.length; i++) {
sht.getRange(lrow + 1, targetColumns[i]).setValue(targetValues[i]);
}
}
このサンプルコードでは、targetColumns
配列に転記先の列のインデックスを指定し、targetValues
配列に転記する項目の値を保持します。
具体的な手順は以下の通りです:
answer
関数はフォームの回答を受け取るトリガーとして設定します。getItemResponses()
メソッドを使用して、回答の全ての項目を取得します。targetColumns
配列には転記先の列のインデックス(1から始まる)を指定します。例えば、2, 4, 6 と指定すると、回答の2番目、4番目、6番目の項目がそれぞれ指定した列に転記されます。targetValues
配列を用意し、for
ループを使用して転記する項目の値を取得します。ループ内で、getResponse()
メソッドを使用して回答の値を取得し、targetValues
配列に追加します。ssid
変数には対象のスプレッドシートのIDを設定します。sht
変数にはスプレッドシートのIDを使用してシートを開き、getSheetByName()
メソッドを使用して対象のシートを取得します。lrow
変数でシートの最終行を取得します。for
ループを使用して、targetValues
配列の値を指定された列に転記します。ループ内で、sht.getRange(lrow + 1, targetColumns[i]).setValue(targetValues[i]);
のコードを使用して、値を転記します。
このコードを使用すると、指定した複数の項目の回答がフォームから送信されるたびに、スプレッドシートの指定された列に値が自動的に転記されます。
googleフォーム→スプレッドシート自動転記!フォームの回答が転記された後に特定の人にメール通知を送る
サンプルコードを示します。
// フォームの回答を取得してスプレッドシートの特定の列に転記し、メール通知を送る
function answer(e) {
const values = e.response.getItemResponses();
const targetColumns = [2, 4, 6]; // 転記先の列のインデックス(1から始まる)
const targetValues = [];
// 転記する項目を取得
for (let i = 0; i < targetColumns.length; i++) {
targetValues.push(values[i].getResponse());
}
const ssid = 'スプレッドシートID';
const sht = SpreadsheetApp.openById(ssid).getSheetByName('test');
const lrow = sht.getLastRow();
// 項目を転記する
for (let i = 0; i < targetColumns.length; i++) {
sht.getRange(lrow + 1, targetColumns[i]).setValue(targetValues[i]);
}
// メール通知を送る
const recipientEmail = '送信先メールアドレス';
const subject = 'フォーム回答の通知';
const message = 'フォームに新しい回答がありました。';
MailApp.sendEmail(recipientEmail, subject, message);
}
このサンプルコードでは、フォームの回答が転記された後に MailApp.sendEmail()
メソッドを使用してメール通知を送信します。
必要な情報を適切に設定してください。
具体的な手順は以下の通りです:
answer
関数はフォームの回答を受け取るトリガーとして設定します。getItemResponses()
メソッドを使用して、回答の全ての項目を取得します。targetColumns
配列には転記先の列のインデックス(1から始まる)を指定します。targetValues
配列を用意し、for
ループを使用して転記する項目の値を取得します。- スプレッドシートの操作として、項目を指定された列に転記します。
recipientEmail
変数にはメール通知を受け取るアドレスを指定します。subject
変数にはメールの件名を設定します。message
変数にはメールの本文を設定します。MailApp.sendEmail()
メソッドを使用して、メール通知を送信します。
このコードを使用すると、フォームの回答が転記された後、指定したメールアドレスに通知メールが自動的に送信されます。
必要に応じて、メールの件名や本文をカスタマイズしてください。
コメント