「言われた通りにやったのに動かない!」 そんな時にチェックすべきポイントをまとめました。実行権限、実行時間、壊れた時の調査手順などを整理します。
1. 最大の難関:「承認」という名の警備員
GASを初めて実行するとき、必ず 「承認(Authorization)」 を求められます。 画面に英語が出たり、赤い警告マークが出たりして、ここで「怖い!」と思って諦めてしまう人が多いです。 しかし、これは正常な動作です。
突破手順(警備員への通行証提示)
Authorization requiredという画面が出るので、自分のアカウントを選択。- 「このアプリはGoogleによって確認されていません」 という怖い画面が出ます。
- これは「Google公式アプリじゃないけどいいの?」と聞かれているだけです。
- ここで慌てずに、左下の 「詳細 (Advanced)」 というリンクをクリックします。
- さらに下に 「(安全ではないページ)に移動」 というリンクが出るので、これをクリックします。
- 最後に 「許可 (Allow)」 をクリックします。
なぜこんな画面が出るの?
これは「あなたが書いたコードが、あなたのメールやドライブを操作しようとしています。本当に許可しますか?」という確認です。 悪意のあるウイルスを防ぐための機能ですが、自分で書いたコードなら安全 なので、堂々と許可してください。
2. 「6分の壁」と「トラック配送の法則」
GASには 「1回の実行は6分まで」 という厳しい制限があります。 (※無料アカウントの場合。有料のGoogle Workspaceなら30分)
これを回避するためのテクニックとして、「トラック配送の法則」 を覚えてください。
❌ 遅い書き方(自転車で1個ずつ運ぶ)
// 1000回、スプレッドシートに書き込む
for (let i = 0; i < 1000; i++) {
sheet.getRange(i + 1, 1).setValue("データ"); // 毎回通信が発生!
}
これだと、1回書き込むたびにGoogleのサーバーと通信するので、すぐに6分経ってしまいます。 「東京から大阪まで、荷物を1個運んで、また戻ってきて…」を1000回繰り返しているようなものです。
⭕ 速い書き方(トラックに積んで一気に運ぶ)
// データを配列(荷台)にまとめる
let data = [];
for (let i = 0; i < 1000; i++) {
data.push(["データ"]);
}
// 一回だけ書き込む
sheet.getRange(1, 1, 1000, 1).setValues(data); // 通信は1回だけ!
setValue(単数)ではなく setValues(複数) を使うのがコツです。
これだけで、処理速度が100倍くらい変わります。
「荷物をトラック満載にして、1回で運ぶ」イメージです。
3. Clasp特有のトラブル
Q. clasp push したらエラーが出た!
- 原因: 同じ名前の関数や変数が、別のファイルにありませんか?
- 解説: GASは全てのファイルを「1つの巨大なファイル」として結合して実行します。
a.jsにconst x = 1;b.jsにconst x = 2;- これがあると、「xが重複している!」と怒られます。
- 対策: 変数名は被らないようにするか、関数の中で宣言しましょう。
Q. ファイルを消したのに、Google上に残っている!
- 原因: ローカルでファイルを削除しても、
clasp pushしただけではGoogle上のファイルは消えません。 - 対策: これはClaspの仕様です。Google上のファイルも消したい場合は、ブラウザで消すか、少し高度ですが
appsscript.jsonをいじる必要があります。- 初心者のうちは「ブラウザで消す」のが一番確実です。
4. デバッグの基本:ログを見よう
動かないときは、とにかく Logger.log() を仕込みましょう。
「どこまで動いていて、どこで止まったか」を特定するのが解決への近道です。
function myFunction() {
Logger.log("1. 処理開始"); // ここは出るか?
var data = getData();
Logger.log("2. データ取得完了: " + data); // データは取れているか?
processData(data);
Logger.log("3. 処理終了"); // ここまで来ているか?
}
エラーメッセージが出たら、それをコピーして CopilotやChatGPTに貼り付けてください。 「このエラーはどういう意味?どう直せばいい?」と聞けば、99%の確率で正解を教えてくれます。
特にVS Code上でCopilotを使っているなら、エラーが出ている行を選択して 「Copilot Chat」 に投げるのが一番早いです。 「Fix this (これを直して)」と言うだけで、修正案を提示してくれます。 AI Agentは、あなたの最強のデバッグパートナーです。
よくある質問 (Q&A)
Q. 承認画面で「安全ではないページ」を押すのが怖いです。
A. 自分で書いたコードなら100%安全です。 Googleは「中身を知らないコード」に対して一律で警告を出しているだけです。 あなたが書いた(あるいはコピペした)コードに悪意がないなら、自信を持って許可してください。
Q. 6分の壁を超えたい場合はどうすればいいですか?
A. 有料版にするか、処理を分割します。 Google Workspace(有料版)なら30分まで伸びます。 無料版のままやるなら、「今日は1〜1000行目まで」「明日は1001行目から」のように、スクリプトが自分で進捗を記録しながら少しずつ進むような工夫(分割実行)が必要です。
5 thoughts on “第8章:初心者が必ずハマるポイント集”