Google スプレッドシートは、リアルタイムでの共同編集が可能な、データの可視化、処理、通信のための強力なツールを提供するクラウドベースのスプレッドシート ソリューションです。
スプレッドシートを拡張するアドオンを使用すると、カスタマイズされたワークフローの改善、サードパーティ システムとの接続の確立、スプレッドシートのデータを他の Google Workspace アプリケーション(Google スライドなど)と統合できます。
他のユーザーが作成したスプレッドシート アドオンは、Google Workspace Marketplace で確認できます。
対応策
Google スプレッドシートを拡張するアドオンを使用すると、次のようなことができます。
- Google スプレッドシートのスプレッドシート内のデータの読み取り、編集、可視化、形式設定は、Apps Script の組み込みの スプレッドシート サービスを使用して行えます。また、条件付き書式設定とデータ検証ルールを作成、変更することもできます。
- Apps Script の高度なスプレッドシート サービスを使用すると、Google Sheets API に直接アクセスできます。
- 標準の HTML と CSS を使用して、カスタム メニューを作成したり、複数のカスタム ダイアログとサイドバー インターフェースを定義したりできます。
- アドオンにカスタム関数の定義を含めることができます。
- 特定のトリガー イベントが発生したときに指定された関数を実行するアドオンのトリガーを使用できます。
スプレッドシート アドオンは Apps Script を使用して作成されます。Apps Script を使用して Google スプレッドシートにアクセスして管理する方法については、Google スプレッドシートの拡張をご覧ください。
シートの構造
Google スプレッドシートのスプレッドシートは、1 つ以上のシートで構成されています。各シートは、基本的にテキスト、数値、リンクなどの値を格納できるセルの 2D グリッドです。隣接する 1 つ以上のセルのグループを範囲といいます。
Apps Script のスプレッドシート サービスには、スプレッドシート内の組織構造を表すクラスがいくつか用意されています(Sheet
や Range
など)。これらのクラスを使用して、スプレッドシートのデータと動作を読み取って変更できます。
トリガー
Apps Script のトリガーを使用すると、スプレッドシートを開いたときやアドオンをインストールしたときなど、特定の条件が満たされたときに、スクリプト プロジェクトが指定された関数を実行できるようになります。
スプレッドシート アドオンで使用できるトリガーと、その使用に適用される制限については、アドオン トリガーをご覧ください。
カスタム関数
Google スプレッドシートには、SUM
や AVERAGE
など、Google スプレッドシートのセル内から呼び出せる組み込み関数が多数あります。スプレッドシート アドオンでは、これらの組み込み関数を補完する追加のカスタム関数を定義できます。ユーザーがアドオンをインストールすると、アドオンに含まれている定義済みのカスタム関数はすぐに使用できるようになります。アドオンは、カスタム関数定義のみで構成することもできます。カスタム関数の定義は、主に、定義を含むアドオンを公開することで他のユーザーと共有します。
アドオンのカスタム関数の作成
アドオン スクリプト プロジェクトで定義された関数は、カスタム関数として使用できます。関数を実装してアドオンをインストールしたら、他のスプレッドシート組み込み関数と同じようにカスタム関数を呼び出すことができます。スプレッドシートのセルに =
と入力し、その後に関数名と必要なパラメータを入力します。エラーがなければ、関数から返された結果がシートのセルに配置され、必要に応じて隣接するセルにオーバーフローします。
アドオンでカスタム関数を作成する場合は、一般的なカスタム関数のガイドラインに従う必要があります。
- 関数の命名ガイドライン
- 関数の引数を定義する
- 関数の戻り値を定義する
- カスタム関数のデータ型
- JSDoc を使用してオートコンプリートを有効にする
- サービス カスタム関数で使用できるもの
- カスタム関数の最適化
また、アドオンで定義されたカスタム関数には、いくつかの特別な考慮事項があります。
- 関数に名前を付けるときは、一意の名前を作成してください。アドオンの名前に関連付けることもできます。インストールされているアドオンが 2 つ以上あり、同じ名前のカスタム関数を定義している場合、ユーザーはどちらか一方しか使用できません。
- アドオンでは、提供されるカスタム関数を明確に伝える必要があります。Apps Script がユーザーに自動入力情報を表示できるように、カスタム関数に正確な JSDoc コメントを指定してください。また、カスタム関数に関する追加のドキュメントを、アドオン自体またはアドオンのサポート ウェブページに用意することを検討してください。
- 30 秒以内に完了しないカスタム関数は、
Internal error executing the custom function
エラーで失敗します。カスタム関数で行う処理の量を制限して、優れたユーザー エクスペリエンスを構築します。可能であれば関数を最適化します。 - カスタム関数は、認証を必要とする Apps Script サービスを使用できません。使用しようとすると、
You do not have permission to call X service
エラーで失敗します。カスタム関数では、許可されたサービスのみを使用してください。 - シート内の各カスタム関数は、Apps Script サーバーの個別の呼び出しになります。ユーザーがカスタム関数をあまりにも多くのセルで使用しようとすると、関数の実行が遅くなることがあります。これを軽減するには、カスタム関数をできるだけシンプルにしてください。複雑な処理や拡張処理を実行する関数が必要である場合は、カスタム関数を使用しないでください。代わりに、メニュー項目、ダイアログ、サイドバーの操作でその機能を提供してください。
スプレッドシートのマクロ
マクロを使用すると、Google スプレッドシートで行った操作を記録し、後でキーボード ショートカットで繰り返すことができます。スプレッドシートでマクロを作成すると、そのスプレッドシートにバインドされた Apps Script プロジェクトのマクロ関数として追加されます。マクロの詳細については、Google スプレッドシートのマクロをご覧ください。
申し訳ございませんが、スプレッドシートのマクロはアドオンで配布することはできません。アドオンのマニフェストにマクロ定義を含めると、そのアドオンのユーザーはマクロを使用できません。