アドオン・プログラムを作ろう! (2/5)
作成:2014-03-24 10:35
更新:2014-03-24 10:35
更新:2014-03-24 10:35
■「アドオン」メニューの仕組み
では、実際にアドオンを作ってみましょう。ここではスプレッドシートに組み込んで使うタイプのアドオンを作ってみます。
まず、Googleドライブから新規にスプレッドシートを作成してください。そして、開いたら<ツール>メニューの<スクリプトエディタ...>を選び、スクリプトエディタを起動します。そして、下のリスト欄のスクリプトを記述してください。今回のサンプルは、「マイ・アドオン」というアドオンです。これはサイドバーに表示されている入力フィールドとボタンを操作して簡単なメッセージを表示する、というごく単純なものです。
onOpenは、既におなじみですね。ドキュメントを開いた際に実行される処理です。そしてonInsallが、新たに追加された「アドオンをインストールした際のイベント」です。ここでは、onInstallでは単純にonOpenを呼び出して実行しています。まぁ、普通は「インストール時の処理=オープン時の処理」と考えていいでしょう。
1. Uiオブジェクトの取得
2. Menuオブジェクトの作成
3. メニュー項目の追加
4. メニューの組み込み
――実際にスクリプトを見れば気づくことですが、これはUiオブジェクトによるオリジナルメニュー作成の処理とほとんど同じです。Menuオブジェクト生成に新たに用意されたcreateAddonMenuというのを利用しているだけです。
※Uiオブジェクトによるオリジナルメニュー作成
http://libro.tuyano.com/index3?id=1189003&page=2
まず、Googleドライブから新規にスプレッドシートを作成してください。そして、開いたら<ツール>メニューの<スクリプトエディタ...>を選び、スクリプトエディタを起動します。そして、下のリスト欄のスクリプトを記述してください。今回のサンプルは、「マイ・アドオン」というアドオンです。これはサイドバーに表示されている入力フィールドとボタンを操作して簡単なメッセージを表示する、というごく単純なものです。
■onOpenとonInstall
ここでは、いくつかの機能が用意されています。まず、注目すべきは、「onOpen」と「onInstall」の2つの関数です。onOpenは、既におなじみですね。ドキュメントを開いた際に実行される処理です。そしてonInsallが、新たに追加された「アドオンをインストールした際のイベント」です。ここでは、onInstallでは単純にonOpenを呼び出して実行しています。まぁ、普通は「インストール時の処理=オープン時の処理」と考えていいでしょう。
■「アドオン」メニューの組み込み
onOpenで行っているのは、「アドオン」メニューへの組み込みです。これは以下の手順で行います。1. Uiオブジェクトの取得
var ui = SpreadsheetApp.getUi();まず、Uiオブジェクトを取得します。ここではスプレッドシートを利用していますから、SpreadsheetApp.getUi();で取得しています。もしGoogleドキュメント用のアドオンを作りたいなら、DocumentApp.getUi();として取得すればいいでしょう。
2. Menuオブジェクトの作成
var addon = ui.createAddonMenu();「アドオン」メニューのMenuオブジェクトを作成します。これは、Uiオブジェクトの「createAddonMenu」を呼び出します。これで作成されたMenuオブジェクトに、必要なメニュー項目を追加していきます。
3. メニュー項目の追加
addon.addItem('サイドバーを表示', 'showSidebar');作成したMenuオブジェクトの「addItem」を呼び出して、メニュー項目を追加していきます。ここでは、「サイドバーを表示」というメニュー項目で'showSidebar'関数を呼び出すようにしてあります。
4. メニューの組み込み
addon.addToUi();メニューが作成できたら、Menuオブジェクトの「addToUi」メソッドを呼び出し、メニューを組み込んで作業終了です。
――実際にスクリプトを見れば気づくことですが、これはUiオブジェクトによるオリジナルメニュー作成の処理とほとんど同じです。Menuオブジェクト生成に新たに用意されたcreateAddonMenuというのを利用しているだけです。
※Uiオブジェクトによるオリジナルメニュー作成
http://libro.tuyano.com/index3?id=1189003&page=2
(by. SYODA-Tuyano.)
※プログラムリストが表示されない場合
AddBlockなどの広告ブロックツールがONになっていると、プログラムリスト等が表示されない場合があります。これらのツールをOFFにしてみてください。
●プログラム・リスト●
function onOpen() { var ui = SpreadsheetApp.getUi(); var addon = ui.createAddonMenu(); addon.addItem('サイドバーを表示', 'showSidebar'); addon.addToUi(); } function onInstall() { onOpen(); } function showSidebar() { var ui = SpreadsheetApp.getUi(); var sidebar = HtmlService.createHtmlOutputFromFile('Sidebar'); sidebar.setTitle('マイ・アドオン'); ui.showSidebar(sidebar); } function hello(msg){ var ui = SpreadsheetApp.getUi(); var re = ui.alert("Message", msg + 'さん、こんにちは!', ui.ButtonSet.OK); }
※関連コンテンツ
「Google Apps Scriptプログラミング [中級編]」に戻る