ADVERTISEMENT

【Googleスプレッドシート】Apps Scriptのデバッガーで変数を確認する!ブレークポイントの設定

【Googleスプレッドシート】Apps Scriptのデバッガーで変数を確認する!ブレークポイントの設定
🛡️ 超解決

Apps Scriptで作成したプログラムが思ったように動かないとき、原因を突き止めるには変数の値を確認しながら一行ずつ実行するのが近道です。しかし、コードを一気に実行してしまうと、どこで値がおかしくなったのか分かりません。そこで役立つのが、組み込みのデバッガーとブレークポイント機能です。この記事では、ブレークポイントの設定方法から変数の中身を確認する手順までを詳しく解説します。これを読めば、スクリプトの動作を細かく追跡できるようになります。

【要点】ブレークポイントとデバッガーを使って変数を確認する方法

  • ブレークポイントの設定(行番号クリック): コードエディタの行番号をクリックするだけで、実行を停止する位置を指定できます。
  • デバッグ実行ボタン: 虫のアイコンをクリックするとデバッグモードで起動し、ブレークポイントで停止します。
  • 変数の値を確認(デバッガパネル): 停止中に右側のパネルで変数名と現在の値を一覧表示できます。

ADVERTISEMENT

Apps Scriptデバッガーができることと前提条件

Apps Scriptのデバッガーは、Googleスプレッドシートに標準で搭載されているスクリプト実行環境に組み込まれています。特別なアドオンやインストールは不要で、スクリプトエディタを開くだけで利用できます。デバッガーを使うと、ブレークポイントを設定した行で実行が一時停止し、その時点の変数やオブジェクトのプロパティを確認できます。また、一行ずつ進める「ステップオーバー」や、関数の中に入る「ステップイン」などの操作も可能です。前提として、Apps Scriptのプロジェクトが開かれていることと、実行する関数が定義されていることが必要です。

ブレークポイントを設定してデバッグする手順

  1. スクリプトエディタを開く
    Googleスプレッドシートのメニューから「拡張機能」→「Apps Script」をクリックします。プロジェクトが新規作成または開かれます。
  2. ブレークポイントを設定する行を決める
    変数の値が変化する箇所や、条件分岐の直前など、確認したい場所をコード内で特定してください。通常は代入文や関数呼び出しの行を選びます。
  3. 行番号の左側をクリックしてブレークポイントを追加する
    コードエディタの左端にある行番号をクリックすると、赤い丸が表示されてブレークポイントが設定されます。クリックするたびにON/OFFを切り替えられます。
  4. デバッグ実行を開始する
    上部ツールバーの虫のアイコン(デバッグボタン)をクリックし、実行したい関数を選択します。または、関数名の横にある小さな虫アイコンをクリックしても同様です。
  5. ブレークポイントで停止したら変数を確認する
    実行がブレークポイントの行で一時停止します。右側の「デバッガ」パネルに「ローカル変数」や「スコープ変数」が表示され、各変数の名前と現在の値が一覧されます。値をダブルクリックすると編集も可能です。
  6. ステップ実行で次の行に進む
    デバッガパネルの上部にある「ステップオーバー」(次の行へ)、「ステップイン」(関数の中へ)、「ステップアウト」(関数から抜ける)ボタンを使い、一行ずつ実行を進めます。その都度変数の値が更新されて確認できます。
  7. デバッグを終了する
    デバッグをやめるには、デバッガパネルの「停止」ボタンをクリックするか、通常の実行が最後まで完了すると自動的に終了します。

デバッグ中の変数確認をさらに活用する方法

ウォッチ式を使って特定の式を監視する

右側のデバッガパネルには「ウォッチ式」という欄があります。ここに関数やプロパティを含む式(例:data.length、user.getName())を追加すると、停止するたびにその式の評価結果が表示されます。変数だけでなく複雑な式も監視できるため、デバッグの効率が上がります。

条件付きブレークポイントを設定する

ブレークポイントは、特定の条件を満たしたときだけ停止させることも可能です。行番号の赤い丸を右クリック(またはCtrl+クリック)すると「条件式」を入力するダイアログが開きます。例えば「counter > 10」と入力すると、変数counterが10を超えたときだけそこで停止します。ループ内でのデバッグに便利です。

スタックトレースで呼び出し元を確認する

デバッガパネルには「コールスタック」という項目があり、現在の関数がどのように呼び出されたかが階層表示されます。バグが複数の関数にまたがる場合、呼び出し元を遡って確認できます。その関数をダブルクリックすると該当のコード行にジャンプできます。

変数の値をその場で変更する

デバッガパネルの変数一覧で、値をダブルクリックすると編集が可能になります。直接値を変更してから実行を再開することで、異なる条件をテストできます。例えば、本来の値が想定と異なる場合に強制的に正しい値をセットして、後続の処理を検証できます。

ADVERTISEMENT

注意点とよくあるトラブル

ブレークポイントが無効になる場合がある

コードを編集したりファイルを切り替えたりすると、ブレークポイントが一時的に無効になることがあります。そのときは赤い丸が薄くなるか、白抜きになります。再度クリックして有効に戻す必要があります。また、デバッグ実行中にコードを変更すると、変更が反映されず古いバージョンで動作することがあるため、デバッグ前に必ず保存してください。

デバッガが起動しないとき

通常実行(再生ボタン)とデバッグ実行(虫ボタン)を間違えないように注意してください。デバッグボタンがグレーアウトしている場合は、スクリプトに構文エラーがないか確認します。エラーがあるとデバッグを開始できません。また、Googleのサーバー側の制限で、1回のデバッグ実行はタイムアウト(6分)に達すると自動停止します。

大量のデータ操作では動作が遅くなる

ブレークポイントを多用すると、特にループ内での停止で実行速度が大幅に低下します。条件付きブレークポイントを活用するか、ウォッチ式で必要な値だけを監視するなどして、最小限の停止に抑えてください。

ブレークポイントと他機能の比較

機能 できること 使いどころ
ブレークポイント(通常) 指定行で必ず停止 問題が起きる箇所が明確な場合
条件付きブレークポイント 条件式がtrueのときのみ停止 ループ内で特定の回数だけ確認したい場合
ウォッチ式 変数や式の値を常時表示 特定の値を常に監視したい場合
console.log ログに出力して後から確認 リアルタイム確認が不要な場合や、大量のデータを記録したい場合

まとめ

Apps Scriptのデバッガーを使うと、ブレークポイントでコードの任意の位置で停止し、変数の値をリアルタイムに確認できます。ステップ実行やウォッチ式、条件付きブレークポイントを組み合わせることで、複雑なバグも効率的に特定できます。まずは簡単なスクリプトでデバッガーに慣れてみてください。ブレークポイントの赤丸をクリックしてデバッグ実行するだけです。慣れてきたら、ウォッチ式で複数の変数を同時に監視するなど、応用も試してみましょう。


ADVERTISEMENT

この記事の監修者
✍️

超解決 第一編集部

疑問解決ポータル「超解決」の編集チーム。正確な検証と、現場視点での伝わりやすい解説を心がけています。