GoogleスプレッドシートのApps Scriptをブラウザ上のエディタだけで編集していると、コードのバージョン管理が難しく、複数人での共同開発も面倒に感じることがあります。そんなときに便利なのが、Googleが公式に提供するコマンドラインツール「clasp」です。claspを使えば、Apps Scriptのコードをローカル環境にダウンロードして好きなエディタで編集し、Gitでバージョン管理しながら開発できます。この記事では、claspのインストールからGitとの連携までを具体的な手順で解説します。
【要点】claspとGitでApps Scriptを効率的にローカル開発する方法
- claspコマンド一式: プロジェクトの作成、プッシュ、プル、デプロイをターミナルから実行でき、ローカル編集と同期できます。
- Gitリポジトリとの連携: ローカルの.clasp.jsonと.gitignoreを適切に設定し、ソースコードだけをバージョン管理します。
- .clasp.jsonとスクリプトID: スクリプトIDを`.clasp.json`に記述することで、複数のプロジェクトを簡単に切り替えられます。
ADVERTISEMENT
claspCLIの概要と準備するもの
clasp(Command Line Apps Script Project)は、Googleが提供するNode.jsベースのCLIツールです。これを使うと、従来ブラウザ上でしか編集できなかったApps Scriptを、ローカルのテキストエディタやIDEで編集し、コマンド一つでGoogleのサーバーと同期できます。また、ローカルでGitを使ったバージョン管理が可能になり、チーム開発やコードレビューもスムーズになります。前提として、Node.jsとnpmがインストールされた環境、Git、そしてGoogleアカウントが必要です。Node.jsは公式サイトからインストーラをダウンロードしてセットアップしてください。Windows、macOS、Linuxのいずれでも動作します。
claspを使ったローカル開発の手順
ここでは、スプレッドシートに紐付いた既存のApps Scriptプロジェクトを例に、claspでローカルに取り込み、Git管理するまでの流れを説明します。
1. claspのインストールとログイン
- claspをグローバルインストールする
ターミナルでnpm install -g @google/claspを実行します。インストールが完了したらclasp --versionでバージョンが表示されることを確認してください。 - Googleアカウントにログインする
clasp loginを実行するとブラウザが開き、Googleアカウントの認証画面が表示されます。必要な権限を許可してください。ログインに成功すると、ターミナルに「Authorization successful.」と表示されます。
2. 既存のApps Scriptプロジェクトをローカルに取り込む
- スプレッドシートからスクリプトIDを取得する
Googleスプレッドシートを開き、メニューの「拡張機能」→「Apps Script」をクリックします。エディタ画面のURL末尾にある「/d/」以降の英数字がスクリプトIDです。これをメモしておきます。 - ローカルにフォルダを作成し、claspでクローンする
任意のディレクトリでmkdir my-clasp-project && cd my-clasp-projectとし、clasp clone <スクリプトID>を実行します。すると、そのプロジェクトのファイルがすべてローカルにダウンロードされます。ファイル構成は.clasp.json、appsscript.json、そして実際のコードファイル(例:Code.gs)です。
3. ローカルでコードを編集し、Google側にアップロードする
- お好みのエディタでコードを編集する
VSCodeやSublime TextなどでCode.gsを開き、関数の追加や修正を行います。編集後は通常通り保存してください。 - 変更をGoogleにプッシュする
ターミナルでclasp pushを実行します。ローカルのファイルがGoogleのスクリプトエディタに反映されます。逆に、Google側で変更があった場合はclasp pullでローカルに同期できます。 - バージョンを作成してデプロイする(任意)
clasp versionでバージョンを作成し、clasp deployでデプロイできます。これにより、本番環境と開発環境を分離できます。
4. Gitでバージョン管理を始める
- Gitリポジトリを初期化する
git initを実行します。このとき、.clasp.jsonにはスクリプトIDや認証情報が含まれるため、.gitignoreファイルを作成し、.clasp.jsonを除外することを強くおすすめします。また、node_modulesなども除外してください。 - コードをステージングしてコミットする
git add .でファイルをステージングし、git commit -m "initial commit"でコミットします。以後、編集のたびにgit addとgit commitで履歴を残せます。リモートリポジトリ(GitHubなど)と連携する場合はgit remote add origin <URL>で追加し、git push -u origin mainでプッシュします。
5. 複数人での開発フロー例
チーム開発では、Gitのブランチを活用します。各メンバーがclasp cloneで同じスクリプトIDからローカルに取り込み、機能ごとにブランチを作成して開発します。変更が完了したらclasp pushで自分のブランチの変更をGoogleにアップロードし、テスト用のスプレッドシートで動作確認を行います。確認が取れたらプルリクエストを出し、レビュー後にmainブランチにマージします。このとき、.clasp.jsonがコンフリクトしないように.gitignoreで除外しておくことが重要です。
注意点とよくあるトラブル
clasp loginで認証に失敗する場合
ブラウザでポップアップがブロックされている可能性があります。ブラウザの設定でポップアップを許可するか、ターミナルに表示されるURLを手動でコピーしてブラウザで開いてください。また、Googleアカウントで2段階認証を使っている場合は、アプリパスワードの代わりにOAuth認証が使われるため、特別な設定は不要です。
clasp pushでエラーが発生する場合
ファイルの構文エラーや、クラウド側の制限(ファイルサイズ上限など)が原因です。まずローカルでclasp runを使ってコードをテストするか、clasp push --forceで強制的にプッシュを試みます。ただし、強制プッシュは競合を無視するため注意が必要です。また、appsscript.jsonの設定が間違っていないか確認してください。
.gitignoreの設定漏れによる機密情報の漏洩
.clasp.jsonにはスクリプトIDやアクセストークンが含まれるため、絶対にGitで追跡しないでください。必ず.gitignoreに.clasp.jsonと.clasprc.json(グローバル設定)を追加します。また、node_modulesも不要なので除外しましょう。テンプレートとして以下の内容を.gitignoreに記述することをおすすめします。.clasp.json
.clasprc.json
node_modules/
clasp pullしたときにローカルの変更が上書きされる
clasp pullは、Google側の最新状態でローカルファイルを上書きします。ローカルに未コミットの変更がある場合は、先にgit stashで退避させるか、コミットしてからプルしてください。コミット後にclasp pullを実行し、その後git diffで差分を確認してからマージすると安全です。
ADVERTISEMENT
claspを使う場合と使わない場合の比較
| 項目 | claspを使う場合 | ブラウザのスクリプトエディタ |
|---|---|---|
| エディタの選択 | 好きなエディタ(VSCode、Sublime等)を使用可能 | ブラウザ上の簡易エディタのみ |
| バージョン管理 | Gitで履歴管理、ブランチ、レビューが可能 | 標準ではバージョン管理機能が弱い(手動でコピー保存など) |
| 共同開発 | Gitを使ったチームワークが容易 | 同時編集が難しく、競合が発生しやすい |
| テスト・デバッグ | ローカルでテストコードを実行可能(clasp run) | ブラウザ上での実行ログのみ |
| 利用環境 | Node.jsとnpmが必要、初期設定に時間がかかる | ブラウザのみで即座に編集可能 |
| オフライン作業 | ローカルで編集可能(ただし同期にはオンラインが必要) | 基本的にオンライン必須 |
まとめ
claspCLIを使うことで、Google Apps Scriptの開発をローカル環境に移行し、Gitによる本格的なバージョン管理が可能になります。この記事で紹介した手順に従えば、既存のプロジェクトを簡単に取り込み、好きなエディタで編集しながらチーム開発もスムーズに進められるようになります。さらに、GitHub Actionsなどと組み合わせてCI/CDパイプラインを構築すれば、プッシュ時に自動テストやデプロイを行うことも可能です。まずは小さなスクリプトからclaspを導入して、ローカル開発のメリットを実感してみてください。
ADVERTISEMENT
超解決 第一編集部
疑問解決ポータル「超解決」の編集チーム。正確な検証と、現場視点での伝わりやすい解説を心がけています。
Googleスプレッドシートの人気記事ランキング
- 【Googleスプレッドシート】GOOGLEFINANCE関数で株価・為替を取得!リアルタイムデータの呼び出し
- 【Googleスプレッドシート】印刷範囲を指定して印刷!特定範囲だけPDFや紙に出す手順
- 【Googleスプレッドシート】新しいスプレッドシートを作成する3つの方法!ドライブ・URL・テンプレート
- 【Googleスプレッドシート】数値の連続データを自動入力!オートフィルの活用
- 【Googleスプレッドシート】ダークモードを有効にする!目に優しい配色への切替
- 【Googleスプレッドシート】株価APIで株式データを自動取得!GOOGLEFINANCE超え活用
- 【Googleスプレッドシート】共有相手が編集できない時のチェック!権限と許可状態の確認
- 【Googleスプレッドシート】ページ設定で用紙サイズと向きを調整!印刷レイアウトの基本
- 【Googleスプレッドシート】Excelファイルxlsxをインポートする手順!ドラッグ&ドロップで取り込み
- 【Googleスプレッドシート】条件付き書式をコピーする!書式のみペーストの活用
