Google スプレッドシートは、リアルタイムでの共同編集が可能な、データの可視化、処理、通信のための強力なツールを提供するクラウドベースのスプレッドシート ソリューションです。
スプレッドシートは、カスタマイズされたワークフローの改善、サードパーティ システムとの接続の確立、スプレッドシートのデータと他の Google Workspace アプリケーション(Google スライドなど)との統合を行うアドオンで拡張できます。
他のユーザーが作成したスプレッドシート用アドオンは、Google Workspace Marketplace で確認できます。
対応策
Google スプレッドシートを拡張するアドオンを使用すると、次のようなことができます。
- Google スプレッドシートのデータを読み取り、編集、可視化、フォーマットするには、組み込みの Apps Script Spreadsheet サービスを使用します。また、条件付き書式とデータの入力規則の作成と変更もできます。
- Apps Script の高度な Sheets サービスを使用すると、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 スプレッドシートのセル内から呼び出すことができます。スプレッドシート アドオンでは、これらの組み込み関数を補完する追加のカスタム関数を定義できます。ユーザーがアドオンをインストールすると、アドオンに含まれる定義済みのカスタム関数がすぐに使用可能になります。アドオンは、カスタム関数定義のみで構成することもできます。カスタム関数定義は、主に定義を含むアドオンを公開することで他のユーザーと共有されます。
アドオンのカスタム関数を作成する
アドオン スクリプト プロジェクトで定義された関数は、カスタム関数として使用できます。関数を実装してアドオンをインストールすると、他の組み込みの Google スプレッドシート関数と同じようにカスタム関数を呼び出すことができます。スプレッドシートのセルに =
を入力し、その後に関数名と必要なパラメータを入力します。エラーがなければ、関数から返された結果がシートのセルに配置され、必要に応じて隣接するセルにオーバーフローします。
アドオンでカスタム関数を作成する場合は、一般的なカスタム関数のガイドラインに沿う必要があります。
- 関数命名ガイドライン
- 関数引数を定義する
- 関数の戻り値を定義する
- カスタム関数のデータ型
- 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 サーバーへの個別の呼び出しが行われます。ユーザーがカスタム関数を多数のセルで使用しようとすると、関数の実行が遅くなることがあります。この問題を軽減するには、カスタム関数をできるだけシンプルにしてください。関数で複雑な処理や拡張処理を行う必要がある場合は、カスタム関数を使用しないでください。代わりに、メニュー項目、ダイアログ、サイドバーの操作でその機能を提供してください。
スプレッドシートのマクロ
マクロを使用すると、Google スプレッドシートで行った操作を記録し、後でキーボード ショートカットを使用して繰り返すことができます。スプレッドシートでマクロを作成すると、そのスプレッドシートにバインドされた Apps Script プロジェクトにマクロ関数として追加されます。マクロの詳細については、Google スプレッドシートのマクロをご覧ください。
残念ながら、スプレッドシートのマクロをアドオンで配布することはできません。アドオンのマニフェストにマクロ定義を含めると、そのアドオンのユーザーはマクロを使用できなくなります。