2011年7月20日水曜日

【使えるパーツ】メニュー(2)複数項目のメニューからスクリプト実行

複数項目のメニューを追加したい場合のサンプルです。項目と項目の間に線を入れるのも簡単です。


まず、スプレッドシートを新規作成してから、スクリプトエディタを起動し、以下のスクリプトを記述します。

function onOpen() {
  var ss = SpreadsheetApp.getActiveSpreadsheet();
  var menuEntries = [];
  menuEntries.push({name: "実行", functionName: "myFunction"});
  menuEntries.push(null); // 線を引く
  menuEntries.push({name: "実行2", functionName: "myFunction2"});
  ss.addMenu("拡張", menuEntries);
}
function myFunction() {
  Browser.msgBox("Hello, World!");
}
function myFunction2() {
  Browser.msgBox("Hello, World 2!");
}

このスクリプトを保存し、スクリプトエディタも閉じます。


更に、スプレッドシートも保存し、スプレッドシートの画面も閉じます。


一旦閉じたスプレッドシートを開くと「拡張」メニューが追加されます。


「拡張」メニューから「実行」を選択すればメッセージボックスが表示されます。



このスクリプトのポイントは、最初にメニュー用の配列を作っておき、その配列に項目名と呼び出される関数名をpush で追加している個所です。メニュー項目が増減する場合は、このやり方がスクリプトをメンテナンスし易いと思います。また、項目と項目の間に線を入れたい場合は、メニュー用の配列にnull をpushするだけです。ちなみに、nullをpushしている行に書かれているダブルスラッシュ(//)は「コメントの始まり」を意味しており、ダブルスラッシュの後はスクリプトとして認識されませんので、スクリプト内に注釈を入れたい時に使います。

【参考にしたサイト】
Google Code > Tutorial: Defining Spreadsheet Menus
http://code.google.com/intl/ja/googleapps/appsscript/articles/defining_menus.html


0 件のコメント:

コメントを投稿