公式資料を参照して構成した手順です。本記事の操作・コードの実行は未確認です。小さな入力例で期待結果を確かめてから利用してください。
できあがるもの
項目辞書は見出しに続き4行です。番号と金額の説明が出て、商品と数量は未定義となります。元のセルメモは残ります。
始める前に
- ブラウザ版Googleスプレッドシートの編集権限と紐付きApps Script
- コピーした検証用ファイルで実行。Apps ScriptはV8ランタイムを利用
- 「台帳」の見出しA1:D1にセルのメモを付ける
- 出力先「項目辞書」は未使用、メモに個人情報や秘密は入れない
入力例
台帳!A1:D1を「番号,商品,数量,金額」にします。A1のメモは「社内の一意な申請番号」、D1のメモは「税込・日本円」とし、B1とC1は未設定にします。
手順
- ファイルの検証用コピーでA1とD1へメモを挿入します。スレッド形式のコメントではなくセルのメモを使っていることを確認してください。
- 次の完全なコードをスクリプトへ貼り付けて保存します。他の記事の同名関数があるプロジェクトには混ぜません。 /** @OnlyCurrentDoc */ function headerDictionary() { const ss=SpreadsheetApp.getActive(), s=ss.getSheetByName('台帳'); if(!s || ss.getSheetByName('項目辞書')) throw Error('シートを確認'); const r=s.getRange('A1:D1'), names=r.getDisplayValues()[0], notes=r.getNotes()[0]; const out=[['列','項目名','説明']]; names.forEach((name,i)=>out.push([ s.getRange(1,i+1).getA1Notation(),"'"+name,"'"+(notes[i]||'未定義') ])); ss.insertSheet('項目辞書').getRange(1,1,out.length,3).setValues(out); }
- headerDictionaryを手動実行して権限を確認します。A1の説明とD1の税込・日本円が辞書へ写り、B1とC1が未定義になるか確かめます。
- 未定義の項目について担当者と意味・入力形式を確認し、原本へ正しいメモを付けます。再生成する際は既存辞書を保管または削除してから実行し、古い定義を無断で上書きしません。
期待結果と照合する
項目辞書は見出しに続き4行です。番号と金額の説明が出て、商品と数量は未定義となります。元のセルメモは残ります。
まずこの入力例で確認し、件数や値が一致しているかを見ます。完了表示だけで判断せず、重複・空欄・対象外データも残っていないか確認してください。
うまくいかないとき
- メモは共有者が閲覧できます。見出し定義へパスワードや顧客の実情報を書かないでください。
- A1:D1以外の定義やコメントの会話履歴は取得しません。対象範囲を変えるときは見出し仕様をそろえます。
止める・元に戻す
項目辞書を削除して関数を外します。原本の項目定義はこのコードから書き換えていません。検証で付けたメモだけ必要に応じて消します。
公式資料・対応範囲
参照日:2026-10-17。公式資料の一般的な機能説明と、本記事固有の入力例の実行検証は別です。実務での短縮時間や効果は未計測です。