スキルアップを始める!

【GAS】doGetを使って簡易店頭受付システムを構築する-Part3

GAS(GoogleAppsScript)
GAS(GoogleAppsScript)
この記事は約4分で読めます。

※記事中に広告情報を含みます。

\ワードプレスのスキルアップはこちら!/ WordPress入門読本

前回で呼び出しボタンを押して音が鳴るようになりました。

あとは、GASを組み合わせて送信をします。

スプレッドシートを準備する

送信があった際に履歴を登録する用のスプレッドシートを準備します。

GASにデータを追記する

このコードは、スプレッドシートの「受付履歴」という名前のシートに、日付や時刻の情報を書き込みます。

function doGet(e) {
  var ss = SpreadsheetApp.getActiveSpreadsheet();
  var sheet = ss.getSheetByName('受付履歴');
  var lastRow = sheet.getLastRow();
  var nextRow = lastRow + 1;

  var currentDate = new Date();
  sheet.getRange(nextRow, 1).setValue(currentDate);
  sheet.getRange(nextRow, 2).setValue('=TEXT(indirect("A"&row()),"yyyy/mm/dd")');
  sheet.getRange(nextRow, 3).setValue('=TEXT(indirect("A"&row()),"hh")');

}

[rml_read_more]

  1. SpreadsheetApp.getActiveSpreadsheet() によって、現在アクティブなスプレッドシートを取得しています。
  2. ss.getSheetByName('受付履歴') によって、「受付履歴」という名前のシートオブジェクトを取得しています。
  3. sheet.getLastRow() によって、シートの最終行の行番号を取得しています。
  4. lastRow + 1 を使って、次に書き込むべき行の行番号を計算しています。
  5. new Date() によって、現在の日時情報を取得しています。
  6. sheet.getRange(nextRow, 1).setValue(currentDate) を使って、次の行の1列目に現在の日時を書き込んでいます。
  7. sheet.getRange(nextRow, 2).setValue('=TEXT(indirect("A"&row()),"yyyy/mm/dd")') を使って、次の行の2列目に書き込むための式を設定しています。この式は、1列目の日時をフォーマットして “yyyy/mm/dd” 形式のテキストとして表示します。
  8. 同様に、sheet.getRange(nextRow, 3).setValue('=TEXT(indirect("A"&row()),"hh")') を使って、次の行の3列目に書き込むための式を設定しています。この式は、1列目の日時をフォーマットして “hh” 形式のテキストとして表示します(時刻のみ)。

doGet 関数が呼び出されると、現在の日時情報が「受付履歴」シートに追加され、2列目には日(yyyy/mm/dd)、3列目には時間(hh)が表示されます。

デプロイする

ウェブアプリケーションとしてデプロイすると、スクリプトはウェブページのように振る舞い、特定のURLからアクセスできます。

このURLは、他のウェブページやJavaScriptのfetch関数などから呼び出すことができます。

提供したスクリプトの fetch('https://script.google.com/macros/s/XXXXXXXXX/exec') の部分がこれに該当します。

呼出ボタンを押すと、呼出音が鳴って、スプレッドシートにデータが登録されました。

まとめ

このスクリプトをウェブサイトに組み込むことで、フォームが送信された際に音を再生し、指定したGASを実行できます。GASはデプロイすることで外部からアクセス可能になり、ウェブアプリケーションのように動作します。

つづきは、また。

URLをコピーしました!