プロが書く美しいコードじゃない、素人の稚拙なコードだからこそ、得られるものだってきっとある…そんな思いでコードを公開しています。どうぞ生暖かく見守ってください。

[Google Apps Script]教えてChatGPT-素人だけどGoogleフォームをスクリプトで制御したいの

ChatGPTGoogle Apps Script素人がプログラミング-きっかけ
  • プログラミング初心者が独学でアプリを作ろうと思ったときにどこから手を付ける?
  • 目標達成までの最短距離は?

前回までの経緯

  1. フォームの項目を表か何かに書き出してわかりやすく管理したい。
  2. アドオンとかスクリプトとか、なんでもいいけどすでにいいツールや方法出てないかな。
  3. 検索力がないからうまく見つけられない。そもそも目的がニッチ過ぎて多分必要としてるのは私だけ。
  4. ツールがないなら自分で作るか・・?けどなにから始めれば…
  5. 教えて!ChatGPT~~!←イマココ!

というわけでChatGPTに最初の質問。質問力どころか語彙力なさすぎて伝わらないやり取りをどうぞ↓

 

google formをspreadsheetで作成できるスクリプトを作って

はい、Google Apps Scriptを使用してGoogleフォームを作成し、そのフォームの回答をGoogleスプレッドシートに保存することができます。以下の手順に従って、このスクリプトを作成することができます。

  1. Googleドライブで新しいスプレッドシートを作成します。
  2. スプレッドシートのメニューから「ツール」>「スクリプトエディター」をクリックします。
  3. 新しいスクリプトファイルを作成します。
  4. 以下のコードをコピーして貼り付けます。
javascript
 function createForm() {
 // フォームの作成
 var form = FormApp.create('新しいフォーム');
// 質問の作成
var item = form.addTextItem();
item.setTitle('名前');
item.setRequired(true);
// フォームのURLを表示
Logger.log('フォームURL: ' + form.getPublishedUrl());
// スプレッドシートに回答を記録する
var formResponses = form.createResponsesSpreadsheet();
Logger.log('スプレッドシートID: ' + formResponses.getId());
}
  1. コードの「新しいフォーム」を任意のフォーム名に変更します。また、質問を追加することもできます。
  2. スクリプトエディターのメニューから「ファイル」>「保存」をクリックして、スクリプトを保存します。
  3. スクリプトエディターのメニューから「実行」>「createForm」をクリックして、スクリプトを実行します。
  4. スクリプトが実行されると、ログにフォームのURLとスプレッドシートのIDが表示されます。フォームのURLを使用して、作成したフォームにアクセスできます。スプレッドシートのIDを使用して、フォームの回答を記録するスプレッドシートにアクセスできます。

以上の手順に従うことで、Googleフォームを作成し、回答をスプレッドシートに保存することができます。必要に応じて、コードを変更してフォームに質問を追加することもできます。

おぉっ・・すごい。。ちゃんとプログラムコードっぽいものまで返してくれる。(何書いてるのかさっぱり読めないけど。。)

けど、、ん・・・?なんかちがう。

そもそも前提が違う気がする。

惜しいけど、私が言いたいのはそうじゃなくて、、、

spreadsheetの項目をgoogle formの質問項目として使用したい

はい、Google Apps Scriptを使用して、スプレッドシートの列を取得し、その列の値を質問としてGoogleフォームに追加することができます。以下の手順に従って、スクリプトを作成してください。

  1. Googleドライブで新しいスプレッドシートを作成します。

  2. スプレッドシートに質問を入力します。例えば、A1セルに「名前」、B1セルに「年齢」などを入力します。

  3. スプレッドシートのメニューから「ツール」>「スクリプトエディター」をクリックします。

  4. 新しいスクリプトファイルを作成します。

  5. 以下のコードをコピーして貼り付けます。

function createFormFromSpreadsheet() {
  // スプレッドシートを取得
  var sheet = SpreadsheetApp.getActiveSheet();
  // 質問の配列を作成
  var questions = [];
  var range = sheet.getDataRange();
  var values = range.getValues()[0];
  for (var i = 0; i < values.length; i++) {
    questions.push(values[i]);
  }
  // フォームの作成
  var form = FormApp.create('新しいフォーム');
  // 質問の追加
  for (var i = 0; i < questions.length; i++) {
    var item = form.addTextItem();
    item.setTitle(questions[i]);
    item.setRequired(true);
  }
  // フォームのURLを表示
  Logger.log('フォームURL: ' + form.getPublishedUrl());
  // スプレッドシートに回答を記録する
  var formResponses = form.createResponsesSpreadsheet();
  Logger.log('スプレッドシートID: ' + formResponses.getId());
}
  1. スクリプトエディターのメニューから「ファイル」>「保存」をクリックして、スクリプトを保存します。

  2. スクリプトエディターのメニューから「実行」>「createFormFromSpreadsheet」をクリックして、スクリプトを実行します。

  3. スクリプトが実行されると、ログにフォームのURLとスプレッドシートのIDが表示されます。フォームのURLを使用して、作成したフォームにアクセスできます。スプレッドシートのIDを使用して、フォームの回答を記録するスプレッドシートにアクセスできます。

以上の手順に従うことで、スプレッドシートの列を取得し、その列の値を質問としてGoogleフォームに追加することができます。必要に応じて、コードを変更してフォームに質問を追加することもできます。

 すご、、なんかよくわからないけど、できそうな気がする…。

ただ、さすがに意味も分からずこのコードをそのまま貼り付けて使うのは怖い・・・。

もう、この際ChatGPTをコーチとしてGoogle Apps Scriptを基礎から勉強しよう。(本当はやりたいことが実現すればそれでいいんだけど、、急がば回れ)

予期せず本気のプログラミング学習が始まってしまいました・・・。

コメント

タイトルとURLをコピーしました