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