Google Sheets Custom Functions
March 14, 2026 · View on GitHub
Google スプレッドシート向けの日本語データバリデーションカスタム関数 — メールアドレス、電話番号、郵便番号。
apps-script-fleet テンプレートから生成。
提供するカスタム関数
| 関数 | 説明 | 例 |
|---|---|---|
=IS_VALID_EMAIL(value) | メールアドレスの形式を検証 | =IS_VALID_EMAIL(A1) |
=IS_VALID_PHONE_JP(value) | 日本の電話番号形式を検証(固定・携帯・フリーダイヤル) | =IS_VALID_PHONE_JP(B1) |
=IS_VALID_POSTAL_CODE(value) | 日本の郵便番号形式を検証(ハイフンあり・なし) | =IS_VALID_POSTAL_CODE(C1) |
使用例
スプレッドシートのセルに以下のように入力:
=IS_VALID_EMAIL("user@example.com") -> TRUE
=IS_VALID_EMAIL("invalid") -> FALSE
=IS_VALID_PHONE_JP("03-1234-5678") -> TRUE
=IS_VALID_PHONE_JP("090-1234-5678") -> TRUE
=IS_VALID_PHONE_JP("0120-123-456") -> TRUE
=IS_VALID_PHONE_JP("1234567890") -> FALSE
=IS_VALID_POSTAL_CODE("123-4567") -> TRUE
=IS_VALID_POSTAL_CODE("1234567") -> TRUE
=IS_VALID_POSTAL_CODE("123-456") -> FALSE
サンプル Google Sheets
カスタム関数はコンテナバインドスクリプトでのみ動作します。Apps Script プロジェクトはスプレッドシート内から作成する必要があります。以下の dev/prod スクリプトはこのスプレッドシートに紐づいています:
| リソース | リンク |
|---|---|
| Google Sheets | custom-functions-sample |
| Apps Script (dev) | custom-functions-dev |
| Apps Script (prod) | custom-functions-prod |
クイックスタート
1. Google Sheets でスプレッドシートを作成
新しいスプレッドシートを Google Sheets で作成します。カスタム関数はこのスプレッドシートで利用可能になります。
2. コンテナバインドスクリプトの作成
スプレッドシートを開く → 拡張機能 → Apps Script。スプレッドシートに紐づいた Apps Script プロジェクトが作成されます。プロジェクト URL(https://script.google.com/d/<scriptId>/edit)から scriptId をコピーします。
3. clasp の設定
.clasp-dev.json と .clasp-prod.json に scriptId を設定:
{ "scriptId": "YOUR_SCRIPT_ID_HERE" }
dev / prod で同じスプレッドシートを共有できます。同一の scriptId を使うか、環境ごとに分けるかは任意です。
4. CI/CD シークレットの設定
CLASPRC_JSON シークレットを GitHub リポジトリまたは Org レベルに設定。
5. デプロイ
pnpm run deploy で dev 環境にデプロイ。カスタム関数は紐づけたスプレッドシートで利用可能になります。
プロジェクト構成
src/
├── index.ts # GAS エントリポイント(IS_VALID_EMAIL 等)— export キーワードなし
└── validators.ts # バリデーションロジック(純粋関数)
test/
└── validators.test.ts # ユニットテスト(カバレッジ 100%)
開発
| コマンド | 説明 |
|---|---|
pnpm run check | lint + typecheck + test(全チェック) |
pnpm run build | TypeScript をバンドルして dist/ に出力 |
pnpm run test | Jest(カバレッジ付き) |
pnpm run test -- --watch | Jest ウォッチモード |
pnpm run deploy | check → build → dev にデプロイ |
pnpm run deploy:prod | check → build → 本番にデプロイ |
CI/CD
CI は全 push と PR で実行。CD は dev または main へのマージで自動デプロイ — GitHub Actions の environment 別 secrets/variables で設定済み。詳細は apps-script-fleet のドキュメントを参照。
注意事項
src/index.tsの関数にexportキーワードは付けない(GAS ランタイムは ES モジュール構文を認識できない)src/index.tsはテストカバレッジ対象外(GAS グローバルが Node.js で実行不可のため)- カバレッジ閾値: 全メトリクス 80%(
jest.config.jsonで変更可)