LANG SELRCT

コードを書く場所についてはこちら

2019年1月12日土曜日

スプレッドシートのアドオンを作りたい(アドオンメニューに項目を追加する)


アドオンでできること
  • 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を選択すると



このようにシートにメッセージが表示されます


これでアドオンのメニューに追加することができましたが、これだけだとこのシートでしかこのアドオンを使えません。


世界に公開するアドオンや、限定ユーザにだけ公開するアドオンを作る手順は別途書きます。