2025.12.19 Sakina Ooka
NI+C 大岡です。
Googleフォームの回答をスプレッドシートに保存していると、ファイルのセル総数が上限(1,000万セル)に達して、急に書き込みできなくなることがあります。現状、標準の通知やトリガーは用意されておりません。
そこで、このブログでは、GASでセル数を定期チェックし、上限手前で自動通知するコードをご紹介します。
・セル数のカウント対象は「ファイル全体」であり、スプレッドシート内のすべてのシートのセル数を合算します。
・各シートのセル数は、実際にデータが入力されているかに関わらず、シートの最大行数と最大列数(グリッドの大きさ)を乗算して算出されます。
・例: 回答シートの列が50列で行が200,000行なら、50 × 200,000 = 10,000,000セル。
・通知先メールアドレス
・メールの件名・本文
・警告メールを送る際の閾値
function checkCellLimit() {
const form = FormApp.getActiveForm(); //現在のフォームを取得
const ssId = form.getDestinationId(); //フォームの回答先スプレッドシートの ID を取得
if (!ssId) return;
//対象のスプレッドシートを開き、全シートの最大行数 × 最大列数の値を合計
const ss = SpreadsheetApp.openById(ssId);
let total = 0;
ss.getSheets().forEach(sh => total += sh.getMaxRows() * sh.getMaxColumns());
//合計セル数 total が WARN 以上の場合、メールで警告を送信します。
const LIMIT = 10000000; // スプレッドシートのセル上限
const WARN = xxxxxxx; // 警告の閾値
if (total >= WARN) {
const to = '宛先のメールアドレス'; // 送信先アドレス
const subject = 'セル上限警告'; // 件名
const body = `【セル上限警告】
スプレッドシートが、セル数の上限に近づいていますので、スプレットシートの切り替えを行ってください。
-------------------------------------------------------------
現在のセル数:${total}/${LIMIT}
スプレッドシート名:${ss.getName()}
URL:${ss.getUrl()}
-------------------------------------------------------------
`;
MailApp.sendEmail(to, subject, body);
}
}
1. Google Apps Scriptにアクセス
対象のGoogleフォームを開き、右上の「3点リーダー」 ->「Apps Script」の順に押下します。

2. コードを貼り付ける
Apps Scriptが開いたら、上記のコードをエディタにそのままコピー&ペーストします。
3. 警告メールを送る際の閾値、宛先のメールアドレスや件名・本文を変更
・[const WARN] に警告メールを送る際の閾値を入力します。
・[to] に通知先メールアドレスを入力します。
・[subject] にメールの件名を記入します。
・[body] にメールの本文を入力します。
4. トリガーの設定
画面左にある ①「トリガー」を押下し、画面遷移後、画面右下にある ②「トリガーを追加」を押下
します。

③「イベントの種類を選択」を「フォーム送信時」に変更し、④「保存」を押下します。

以下の認証画面が表示されますので、自身のアカウントを選択し、「Allow」を押下します。

5. 保存
プロジェクトを保存します。
閾値に設定した値を超えた場合、指定したアドレスに以下のような警告メールが届きます。

Googleフォーム×スプレッドシートの運用では、1000万セル上限に近づくと突然保存できなくなり、業務に影響したりします。標準通知がないため、GASを使ってセル数を定期チェックし、上限前にメールやチャットで自動通知する仕組みを用意しておくことをおすすめします。
Google Cloud、Google Workspaceに関する お問い合わせはこちら