しごと自動化レシピ

WORK RECIPE GAS

数式セルのアドレスと式を点検表へ写す

指定範囲の数式だけを抽出し、セル位置と式の文字列を別シートへ記録します。数式を評価し直さずに一覧化し、計算式の差し替えや点検前の控えとして利用します。

実行確認の記録なし

公式資料を参照して構成した手順です。本記事の操作・コードの実行は未確認です。小さな入力例で期待結果を確かめてから利用してください。

できあがるもの

数式一覧にはC2・=A2*B2、D2・=SUM(C2:C10)の2件が出ます。元の計算シートでは金額600の数式がそのまま残ります。

始める前に

  • ブラウザ版Googleスプレッドシートの編集権限と紐付きApps Script
  • コピーした検証用ファイルで実行。Apps ScriptはV8ランタイムを利用
  • 「計算」A1:D20のみを対象、出力先「数式一覧」は未使用
  • 検証用数式には外部ファイルIDや秘密のURLを含めない
入力例

計算!A1:C2は「数量,単価,金額」「2,300,=A2*B2」。D2に =SUM(C2:C10) を入力します。

手順

  1. ファイルをコピーし、対象範囲がA1:D20で足りるか確認します。式には外部参照URLなどが含まれる場合があるため、出力一覧は元ファイルと同じ共有範囲で扱います。
  2. 次の完全なコードをスクリプトへ貼り付けて保存します。他の記事の同名関数があるプロジェクトには混ぜません。 /** @OnlyCurrentDoc */ function formulaInventory() { const ss=SpreadsheetApp.getActive(), s=ss.getSheetByName('計算'); if(!s || ss.getSheetByName('数式一覧')) throw Error('シートを確認'); const formulas=s.getRange('A1:D20').getFormulas(), out=[['セル','数式']]; formulas.forEach((row,i)=>row.forEach((f,j)=>{ if(f) out.push([s.getRange(i+1,j+1).getA1Notation(),"'"+f]); })); ss.insertSheet('数式一覧').getRange(1,1,out.length,2).setValues(out); }
  3. formulaInventoryを手動実行して権限を確認します。数式一覧にC2とD2の2行が出て、右列が計算結果ではなく式を示すことを確認します。
  4. 一覧!B2の入力欄や表示内容で=A2*B2が文字列として保持されるか確認します。先頭に付けたアポストロフィで、点検表内では式が再計算されないようにしています。

期待結果と照合する

数式一覧にはC2・=A2*B2、D2・=SUM(C2:C10)の2件が出ます。元の計算シートでは金額600の数式がそのまま残ります。

まずこの入力例で確認し、件数や値が一致しているかを見ます。完了表示だけで判断せず、重複・空欄・対象外データも残っていないか確認してください。

うまくいかないとき

  • 対象範囲外の式は記録しません。ブック全体の依存関係や循環参照まで解析する機能ではありません。
  • 点検表から式を戻すときは対象位置と参照先を再確認してください。一括復元のコードは含めていません。

止める・元に戻す

数式一覧を削除します。元の数式には変更を加えていないため、復元せずそのまま使い続けられます。

公式資料・対応範囲

参照日:2026-10-17。公式資料の一般的な機能説明と、本記事固有の入力例の実行検証は別です。実務での短縮時間や効果は未計測です。

同じツールで試す

GASの記事一覧へ →