アドオンでできること
- Googleスプレッドシートのデータの読み取り、編集、視覚化、書式設定
- HTMLとCSSでメニュー、ダイアログ、サイドバーの作成
- スプレッドシートのカスタム関数作成
- アドオン内で定義されている関数は全てカスタム関数として呼び出せる
- 特定のトリガーイベントが発生したときに特定の機能を実行する
できないこと・注意点
- マクロは配布できない
- Unfortunately, Sheets macros can't be distributed with add-ons. If you include a macro definition in an add-on's manifest, it is unavailable to users of that add-on.
- 別のアドオンで同名のカスタム関数がある場合は片方しか使えない
- 30秒以内に完了しない場合はエラーになる
- 承認を必要とするApps Scriptサービスを呼び出すことはできない
- 複雑な処理をさせると遅くなるためできる限り単純化する
実際にひとつ作ってみます
今回はアドオンを作る手順だけ簡単に書きたいので
実行するとシートにメッセージが表示されるというものをつくります
スプレッドシートにメッセージボックスを表示する
のコード.gsを以下のものに置き換えます
コード.gs
function onOpen(e) { SpreadsheetApp.getUi() .createAddonMenu() .addItem('Message', 'showMessage') .addToUi(); } function onInstall(e) { onOpen(e); } function showMessage() { Browser.msgBox('メッセージを表示する'); } |
意訳この機能がやること スプレッドシートのUIに アドオンのメニューを追加して 項目名と実行する関数を設定して 追加する この機能がやること onOpen(e)を実行する この機能がやること メッセージを表示する |
上記コード.gsを保存してシートを再読込して
アドオン > showMassage > Messageを選択すると
このようにシートにメッセージが表示されます
これでアドオンのメニューに追加することができましたが、これだけだとこのシートでしかこのアドオンを使えません。
世界に公開するアドオンや、限定ユーザにだけ公開するアドオンを作る手順は別途書きます。
参考
Extending Google Sheets with Add-ons
https://developers.google.com/gsuite/add-ons/editors/sheets
Custom functions in Sheets Add-ons
https://developers.google.com/gsuite/add-ons/editors/sheets/custom-functions
Extending Google Sheets with Add-ons
https://developers.google.com/gsuite/add-ons/editors/sheets
Custom functions in Sheets Add-ons
https://developers.google.com/gsuite/add-ons/editors/sheets/custom-functions
Apps Script のプロジェクトを G Suite アドオンとして供給した方がよい理由