
GASでフォームのデータを自動で整理して、業務を効率化しましょう!
GASでフォーム送信データを自動整理・加工!業務効率化の秘訣
Google Apps Script(GAS)を使えば、Googleフォームで収集したデータを自動で整理・加工できます。これにより、手作業によるデータ処理の時間を大幅に削減し、業務効率を向上させることが可能です。この記事では、GASの基本的な使い方から、フォーム送信データの取得、整理、加工、そしてスプレッドシートへの書き込みまで、具体的な手順を解説します。
フォームの回答をリアルタイムで処理したい、特定の条件を満たすデータだけを抽出したい、複数のスプレッドシートにデータを振り分けたい… GASを使えば、これらの要望をすべて叶えることができます。プログラミング初心者でも理解しやすいように、コード例を交えながら丁寧に解説していきますので、ぜひ最後までお読みください。
GASの基本とフォーム送信データの取得
GASは、Google Workspaceの各種サービスを連携させて自動化するためのスクリプト言語です。JavaScriptをベースにしており、Webアプリケーション開発の経験があればすぐに使いこなせるでしょう。
まず、Googleフォームと連携するGASプロジェクトを作成します。Googleスプレッドシートを開き、「ツール」→「スクリプトエディタ」を選択すると、GASの編集画面が開きます。
次に、フォーム送信時のイベントをトリガーにしてGASを実行するための設定を行います。スクリプトエディタの左側にある「トリガー」アイコンをクリックし、「トリガーを追加」ボタンを押します。イベントの種類で「フォーム送信時」を選択し、実行する関数を指定します。
function onFormSubmit(e) {
// フォームの回答内容を取得
var responses = e.response.getItemResponses();
// 各質問の回答を取得
var timestamp = e.response.getTimestamp();
var name = responses[0].getResponse();
var email = responses[1].getResponse();
Logger.log('タイムスタンプ: ' + timestamp);
Logger.log('名前: ' + name);
Logger.log('メールアドレス: ' + email);
// 取得したデータをログに出力(デバッグ用)
}
上記のコードは、フォームが送信された際に実行されるonFormSubmit
関数です。e.response.getItemResponses()
でフォームの全回答を取得し、各質問の回答をgetResponse()
で取得しています。取得したデータはLogger.log()
でログに出力されます。Logger.log()
はGASの実行ログを確認するための便利な関数です。
データ整理・加工の実践
取得したデータを整理・加工する例を見てみましょう。ここでは、メールアドレスの形式をチェックし、不正な形式の場合はエラーメッセージをスプレッドシートに書き込む処理を実装します。
function onFormSubmit(e) {
var responses = e.response.getItemResponses();
var email = responses[1].getResponse();
// メールアドレスの形式チェック
var emailRegex = /^[\w-\.]+@([\w-]+\.)+[\w-]{2,4}$/;
if (!emailRegex.test(email)) {
// 不正な形式の場合
Logger.log('不正なメールアドレス: ' + email);
// スプレッドシートにエラーメッセージを書き込む処理をここに記述
} else {
// 正しい形式の場合
Logger.log('正しいメールアドレス: ' + email);
// スプレッドシートにデータを書き込む処理をここに記述
}
}
上記のコードでは、正規表現^[\w-\.]+@([\w-]+\.)+[\w-]{2,4}$/
を使ってメールアドレスの形式をチェックしています。emailRegex.test(email)
でメールアドレスが正規表現にマッチするかどうかを判定し、マッチしない場合はエラーメッセージをログに出力します。
さらに、このエラーメッセージをスプレッドシートに書き込む処理を追加することで、データの品質を向上させることができます。
スプレッドシートへの書き込み
最後に、整理・加工したデータをスプレッドシートに書き込む方法を解説します。
function onFormSubmit(e) {
var responses = e.response.getItemResponses();
var timestamp = e.response.getTimestamp();
var name = responses[0].getResponse();
var email = responses[1].getResponse();
// スプレッドシートのIDとシート名
var spreadsheetId = 'YOUR_SPREADSHEET_ID';
var sheetName = 'シート1';
// スプレッドシートを取得
var spreadsheet = SpreadsheetApp.openById(spreadsheetId);
var sheet = spreadsheet.getSheetByName(sheetName);
// データを書き込む
sheet.appendRow([timestamp, name, email]);
}
上記のコードでは、SpreadsheetApp.openById(spreadsheetId)
でスプレッドシートを取得し、getSheetByName(sheetName)
でシートを取得しています。sheet.appendRow([timestamp, name, email])
で取得したデータをシートの最終行に追加しています。YOUR_SPREADSHEET_ID
は、実際に使用するスプレッドシートのIDに置き換えてください。
フォームから送信されたデータは、自動的にスプレッドシートに記録されるため、データ分析やレポート作成が容易になります。
参考リンク
まとめ
GASを活用することで、Googleフォームの送信データを自動で整理・加工し、スプレッドシートに書き込むことができます。これにより、手作業によるデータ処理の時間を大幅に削減し、業務効率を向上させることが可能です。
今回紹介したコード例を参考に、ぜひGASを使ったフォーム自動処理を試してみてください。最初は簡単な処理から始め、徐々に複雑な処理に挑戦していくと良いでしょう。GASは、あなたの業務効率化に大きく貢献してくれるはずです。