Googleフォームを使ったアンケートで、あらかじめ名前が入ったアンケートを個別に一斉に送りたい時にやった手順
フォームを用意
こんな感じの、名前を入力する項目が入ったフォームを用意
## 事前に入力したURLを取得
「事前に入力したURLを取得」を開く。今回はお名前のところを事前入力して作りたいので、お名前のところに「hoge」と入力する。
(hogeの部分はあとでGASで置換するので、わかりやすければなんでもいいが、日本語にするとあとでエンコードの問題が発生して置換しづらくなるのでさけた方がいい)
できたら「リンクを取得」を押し、左下に出てくる「リンクをコピー」を押してリンクを取得する
ここで取得したリンクは今回の場合 https://docs.google.com/forms/d/e/1FAIpQLSevwd9U9rBYKNKnq_HeN-2irodHg9k4MUUm4fg9W3-tBiFE9A/viewform?usp=pp_url&entry.1570869996=hoge" のようになっています。名前の部分でhogeと入力した部分が最後のentry.1570869996=hogeに対応しているわけですね。この部分を置換して好きな値を代入すればうまくフォームに名前を入力したまま送信できそうです。
GASを利用してGmail、スプレッドシートと連携する
フォームの準備が整ったので、今度はGASを書いていきます。

今回はこんな感じの、名前とメールアドレスの入ったUsersというシートを用意しました。ここから個別にGmailで送信したいと思います。
//コピーしたURLをforms_urlに代入
var forms_url = "https://docs.google.com/forms/d/e/1FAIpQLSevwd9U9rBYKNKnq_HeN-2irodHg9k4MUUm4fg9W3-tBiFE9A/viewform?usp=pp_url&entry.1570869996=hoge"
//ユーザー一覧のシートをここで設定
var Users_sheet = SpreadsheetApp.getActiveSpreadsheet().getSheetByName("Users");
var Users_last_row = Users_sheet.getLastRow();
var Users_last_column = Users_sheet.getLastColumn();
var Users_list = Users_sheet.getRange(1,1,Users_last_row,Users_last_column).getValues();
////////////////////////
//
//メニュー追加
//
////////////////////////
function onOpen(){
var menu =[{name:'アンケート送信', functionName:'Send_Forms'}]
SpreadsheetApp.getActiveSpreadsheet().addMenu("アンケート送信",menu);
}
///////////////////////
//
//アンケート送信
//
///////////////////////
function Send_Forms(){
for(var i =1; i< Users_last_row; i++){
var users_name = Users_list[i][0]; //ユーザー名
var users_address = Users_list[i][1]; //メールアドレス
var replace_url = forms_url.replace("hoge",users_name); //ユーザー名をアンケートに埋めこむ部分
var body = replace_url //メール本文
var subject = "アンケート のご協力" //件名
GmailApp.sendEmail(users_address, subject, body) //Gmail送信
}
}
メニューにメール送信の項目を作っておくとその後使いやすいと思いfunction onOpen()を用意しました。ユーザー名やアドレスは自分が用意したシートにあわせて変えてください。
結果
スクリプトを実行した結果こんな感じで無事に送信できました。URLを開いてみると
確かに事前に名前が入ったフォームができていました。
### まとめ
メールアドレスを必須にすればユーザー管理が楽になるが、ユーザーに余計な入力の負担がかかるのが嫌だったので、事前に名前くらいは入力させたかったので作りました。これで例えば誰からアンケートの結果が返ってきてないなど管理ができます。ただ、名前を回答者が書き換えちゃえるのが欠点。