Google Apps Scriptを使ってGoogle Sheetsに関数を実行するメニューを追加する
スプレッドシートの
ツール > スクリプト エディッタ
に次のように書く:
function onOpen() {
var ui = SpreadsheetApp.getUi();
ui.createAddonMenu().addItem('My Action in Addon', '実行する関数名').addToUi(); // アドオンとしてつける
ui.createMenu('My Menu').addItem('My Action in Menu', '実行する関数名').addToUi(); // メニューとしてつける
}
関数onOpenはスプレッドシートを開いたときに自動的に実行される。
ライブラリの使い方を知らなかったので、これを使って関数を分離する。
- ライブラリに追加するGoogle Apps Scriptのプロジェクトを用意する
- 次のコードをスクリプトファイルに保存する:
function init() {
_addMenu();
}
function _addMenu() {
var ui = SpreadsheetApp.getUi();
ui.createAddonMenu().addItem('My Action in Addon', 'execute').addToUi();
ui.createMenu('My Menu').addItem('My Action in Menu', 'execute').addToUi();
}
function execute() {
var ui = SpreadsheetApp.getUi();
var res = ui.alert('My App', 'Execute my action?', ui.ButtonSet.OK_CANCEL);
if ( res == ui.Button.OK ) _getSheetId();
}
function _getSheetId() {
var ssId = SpreadsheetApp.getActiveSpreadsheet().getId();
Browser.msgBox(ssId);
}
- スクリプトIDを取得する
ファイル > プロジェクトのプロパティ
でプロジェクトのプロパティを開き、スクリプトIDの項にある値を控える。
- ライブラリとして使えるようにする
- ファイル > 版を管理で新しいバージョンを保存する。
スクリプトをライブラリとして使う
- スプレッドシートのライブラリに追加する
- ライブラリを使うスプレッドシートを開く。
ツール > スクリプト エディッタ
でこのスプレッドシートのスクリプトを編集する画面を開く。
リソース > ライブラリ...
でこのスプレッドシートのスクリプトが使うライブラリの画面を開く。
- 控えたスクリプトIDを追加する。
- ライブラリでバージョンや識別子を設定する
- バージョンを選択する。
- 識別子をMyProjectForLibraryにする。
- 直接的に動かすスクリプトを書いて保存する
-
function onOpen() {
MyProjectForLibrary.init();
}
function execute() {
MyProjectForLibrary.execute();
}
- スプレッドシートのスクリプトを動かす
- スプレッドシートを再読み込みする。
- メニューまたはアドオンに追加された項目を選択し、関数を実行する。
- 承認を求められたら許可をする。
2019/08/24 08:46