Makeでスプレッドシートに自動追記したいのに、古い記事の手順が動かない

それ、あなただけじゃない。

2024年末からMakeのUIが刷新され、さらにGoogleのOAuth認証仕様も変わった。2年前のYouTube動画や記事を見ながら設定しようとすると、モジュール名も画面の場所も違う——という状況になっている。

この記事では、2026年時点のUIをベースに「Google Formsの回答をスプレッドシートへ自動追記する」手順を2パターン解説する。ポーリング方式とWebhook方式、どちらが自分に合うかもはっきり分かる。


💡 関連教材: ChatGPT業務自動化 実践テンプレート集(¥1,480) — API・スプレッドシート・メール・議事録・請求書をコピペで自動化する実装特化型テンプレート集(全22ページ)

Make×Googleスプレッドシート連携の全体像と2026年時点の注意点

2つの連携パターン、何が違うか

まず構成の違いを整理する。

パターンA:Makeネイティブモジュール方式

Google Forms(回答)→ Make「Watch Responses」→ Sheets「Add a Row」

パターンB:GAS+Webhook方式

Google Forms(回答)→ GASのonFormSubmit() → Make Webhook → Sheets「Add a Row」

結論から言うと、速度と安定性で圧倒的にBが上。Aはポーリング方式なので、フォーム送信からシートへの反映まで最大15分のラグが出る。Bは数秒以内。

「リアルタイムじゃなくていい」という用途ならAで十分。問い合わせフォームや申込受付でSlack通知と組み合わせるなら、Bを選ぶべきだ。

2024年以前の記事が「使えない」本当の理由

正直なところ、自分も最初にハマった。旧UIのスクリーンショットを見ながら設定しようとすると、モジュールの追加ボタンの位置から違う。

主な変更点は3つ。

  • シナリオエディタの左パネルデザインが刷新(モジュール検索UIが変更)
  • Google OAuth認証のスコープ確認画面の表示が変わった
  • 「Add a Row」の列マッピング画面のレイアウトが変更

もう一つ見落とされがちな問題がある。90日以上使っていないGoogle接続は自動失効する。久々にシナリオを再開したら急に動かなくなった、という相談が増えているのはこれが原因だ。

無料プランで何回まで使えるか

2025年改定で無料プランは月1,000オペレーション、シナリオ2個までに変更された。繰り越しも廃止。

1回のフォーム送信で「Add a Row」1回=1オペレーション消費。エラーハンドリングやSlack通知モジュールを追加すると1送信あたり2〜3オペレーション消費になる。

月300回のフォーム回答があるなら、3モジュール構成で900オペレーション。ギリギリ無料プランに収まる計算だ。それ以上になるなら有料プラン(Core:年払いで月9USD〜、10,000オペレーション)への移行を検討してほしい。


【基本構成】Makeネイティブモジュールで自動追記する手順(2026年最新UI)

前提:スプレッドシートの準備

ここを雑にやると後で必ずハマる。

  • 1行目をヘッダー行にする(2行目以降にヘッダーがあると認識されない)
  • 結合セルは使わない
  • ヘッダー名は英数字推奨(日本語でも動くが文字化けリスクがある)

例えばこういう構成にする。

| timestamp | name | email | message | |———–|——|——-|——-|

シンプルに見えるが、これが一番安定する。

Step 1:Google Sheetsモジュールを追加する

Makeのシナリオエディタを開き、「+」ボタンからモジュール追加画面を起動。検索窓に「Google Sheets」と入力すると候補が出る。

トリガー側は「Google Forms」→「Watch Responses」を選択。スプレッドシート側は「Google Sheets」→「Add a Row」を選択する。

Step 2:Google OAuth接続を設定する

「Add a Row」モジュールの設定画面で「Connection」欄の「Add」をクリック。

2025年以降で確認すべきポイントが1つある。認証画面で「Googleスプレッドシートの表示、編集、作成、削除」のスコープにチェックが入っているかを確認すること。このスコープが抜けていると、追記時に403エラーが出る。

Step 3:列マッピングを設定する

「Add a Row」の設定画面で対象のスプレッドシートとシートを選択すると、1行目のヘッダーが自動で読み込まれる。

各列に対して、前のモジュール(Watch Responses)から渡ってくる値をマッピングする。タイムスタンプなら、名前ならという形式で指定する。

⚠️ よくあるミス:列名が認識されない場合は、スプレッドシートを一度閉じて再度開き、Makeのモジュール設定画面もリロードしてみる。キャッシュの問題で古いヘッダー情報を掴んでいることがある。

Step 4:テスト実行で確認

右下の「Run Once」をクリックしてシナリオを1回実行。Google Formsからテスト送信し、スプレッドシートに行が追加されれば成功だ。


【推奨構成】GAS+Webhookでリアルタイム追記する手順

なぜGASを経由するか

3つの理由がある。

  1. 遅延ゼロ:フォーム送信と同時にトリガーが走る
  2. オペレーション効率:Webhookトリガーはオペレーション消費が最小
  3. 安定性:Makeのポーリング間隔に依存しないため、取りこぼしがない

少し手間はかかるが、実務で使うなら断然こちらが正解だ。

Step 1:MakeでカスタムWebhookを作成してURLを取得する

シナリオエディタでトリガーとして「Webhooks」→「Custom Webhook」を選択。

「Add」→「Save」でWebhook URLが発行される。このURLをコピーしておく。形式はhttps://hook.eu2.make.com/xxxxxxxxxxxxxxxxのようになる。

Step 2:Google FormsにGASを紐付ける

Google Formsの編集画面を開き、右上のメニュー(︙)→「スクリプトエディタ」を選択。

以下のコードを貼り付ける。

function onFormSubmit(e) {
  var webhookUrl = 'ここにMakeのWebhook URLを貼る';
  
  var formResponse = e.response;
  var itemResponses = formResponse.getItemResponses();
  
  var payload = {
    timestamp: formResponse.getTimestamp(),
    respondentEmail: formResponse.getRespondentEmail()
  };
  
  itemResponses.forEach(function(itemResponse) {
    var title = itemResponse.getItem().getTitle();
    var response = itemResponse.getResponse();
    // チェックボックスは配列で返るので文字列に変換
    if (Array.isArray(response)) {
      response = response.join(', ');
    }
    payload[title] = response;
  });
  
  var options = {
    method: 'post',
    contentType: 'application/json',
    payload: JSON.stringify(payload)
  };
  
  UrlFetchApp.fetch(webhookUrl, options);
}

Step 3:GASのトリガーを設定する

スクリプトエディタ左側のメニューから「トリガー」を選択。

「トリガーを追加」→ 実行する関数:onFormSubmit、イベントのソース:「フォームから」、イベントの種類:「フォーム送信時」を選択して保存。

Googleアカウントの権限承認ダイアログが出るので許可する。

Step 4:MakeでWebhook→Add a Rowを接続する

Makeのシナリオに戻る。Webhookモジュールの後ろに「Google Sheets」→「Add a Row」を追加。

Webhookで受け取ったデータ(``等)をスプレッドシートの列にマッピングする。

Step 5:フォーム送信テストで動作確認

Google Formsのプレビューからテスト送信。Makeのシナリオ実行ログに「1 operation」と表示され、スプレッドシートに行が追加されれば完成だ。

💡 チェックボックス回答について:GASコード内でArray.isArray(response)のチェックを入れているため、複数選択の回答も「選択肢A, 選択肢B」という形式で1セルに収まる。


実務運用で必須のエラー対策とオペレーション節約設定

エラーハンドリングを必ず設定する

設定して満足して終わり、は危険だ。Googleの認証トークンが切れたとき、スプレッドシートの列構成を誰かが変えたとき——無音で失敗し続けるシナリオほど怖いものはない。

Makeのシナリオエディタで、モジュールを右クリック→「Add error handler」を選択。エラー発生時に「Gmail」または「Slack」モジュールを繋いでアラートを送る構成にする。

失敗ログシートを別タブに作るのも実務では重宝する。エラーハンドラーに「Google Sheets:Add a Row」をもう一つ追加し、失敗時刻・エラーメッセージ・送信データを別タブに記録する。あとから追いかけられる。

オペレーション数を節約する3つの設定

無料プランで運用するなら特に意識してほしい。

  • フィルターを活用:特定条件の回答だけ処理する(例:「お問い合わせ種別が『見積もり依頼』のみ追記」)
  • Webhookトリガーを使う:ポーリング方式より消費が少ない
  • シナリオを統合する:似た処理は1シナリオにまとめてモジュール数を削減

90日ルールへの対策

Google接続の自動失効を防ぐには、シナリオを定期的に動かし続けることが一番確実だ。月に数回しかフォーム送信がない場合は、週1でダミーデータをWebhookにPOSTするシナリオを別途動かしておくという運用もある。

少し泥臭いが、「突然動かなくなった」を防ぐには有効だ。


今日やること:1つだけ選ぶ

まずMakeのシナリオエディタを開いて「Custom Webhook」モジュールを1つ作り、URLを取得するところから始めてほしい。

GASのコードを書くのが不安なら、記事内のコードをそのままコピーしてwebhookUrlの部分だけ書き換えれば動く。設定全体で30分あれば完了する。

認証エラーが出たら、まずGoogle接続を削除して作り直す。それだけで解決するケースが8割だ。


📘 もっと深く学びたい方へ

この記事で紹介した内容を、さらに体系的に・実務レベルで習得できる教材を販売中です。

ChatGPT業務自動化 実践テンプレート集(¥1,480)

API・スプレッドシート・メール・議事録・請求書をコピペで自動化する実装特化型テンプレート集(全22ページ)

  • 動くGASコード・API設定手順・プロンプトをワンセット収録
  • スプレッドシート連携/メール/議事録/請求書を実務レベルで自動化
  • コピペで即動く実装コード(Python / GAS)付き

👉 今すぐ購入する

ChatGPT&Claude AIプロンプト集50選(¥980)

コピペで即使える実践プロンプト50種を全24ページに凝縮

  • ビジネスメール・企画書・分析・コーディング等 8カテゴリ網羅
  • ChatGPT / Claude / Gemini 全対応
  • 変数を埋めるだけで即実務投入

👉 今すぐ購入する


関連記事


関連ツール紹介

ブログ記事を効率的に量産するならValue AI Writer byGMOがSEO記事の自動生成に使える。月額1,650円から利用可能。

おすすめツールの一覧はこちらにまとめている。