Google Apps Scriptで作成したスクリプトを実行するには、スクリプトの作成画面で実行ボタンを押す必要があります。
しかし、Google Apps Scriptを使ったことがない人には見慣れない画面なので、少し難しく感じるかもしれません。
また、自分でスクリプトを定期的に実行する場合でも、スクリプトの作成画面を毎回開くのは面倒です。
そんなときは、カスタムメニューを作成し、スクリプト実行ボタンを追加するのがおすすめです!
メニューボタンを押すだけなので、スクリプトの作成画面を開くこともなく、Google Apps Scriptを使ったことがない人でも簡単にスクリプトを実行することができます!
コピペ用コード
function onOpen() {
const customMenu = SpreadsheetApp.getUi();
customMenu.createMenu('カスタムメニュー')
.addItem('ボタンA', '関数A')
.addItem('ボタンB', '関数B')
.addSeparator()
.addItem('ボタンC', '関数C')
.addToUi()
}
解説
コピペ用コード内の「カスタムメニュー」はメニュー名を入力します。
「ボタンA」にはスクリプトを実行するときに押すボタンに表示させたい文字を入力します。
「関数A」にはボタンAを押した時に実行される関数名を入力します。
.addSeparator()は区切り線を入れたいところに入力します。
コピペ用コードを実行すると、下のようなカスタムメニューが表示されます。
onOpenメソッドを使っているので、スプレッドシートを開くたびにスクリプトが実行され、カスタムメニューを表示することができます。
使用例
別記事「GASで複数のシートに分かれた表を1つにまとめる方法」では、カスタムメニューを利用してスクリプトを実行していました。
この動画で実行しているスクリプトはこちらです。
const spreadSheet = SpreadsheetApp.getActiveSpreadsheet();
const allDataSheet = spreadSheet.getSheetByName('全社'); //まとめたデータを出力するシート
const sheetNames = ['A店', 'B店', 'C店']; //まとめたいデータのシート名
let dataList = [];
function getAllData() {
allDataSheet.getRange(2, 1, allDataSheet.getLastRow(), allDataSheet.getLastColumn()).clearContent()
for (i = 0; i < sheetNames.length; i++) {
const dataSheet = spreadSheet.getSheetByName(sheetNames[i]);
const data = dataSheet.getRange(2, 1, dataSheet.getLastRow() - 1, dataSheet.getLastColumn()).getValues();
for (r = 0; r < data.length; r++) {
data[r].push(sheetNames[i])
}
dataList = dataList.concat(data);
}
allDataSheet.getRange(2, 1, dataList.length, dataList[0].length).setValues(dataList);
}
// メニュー追加
function onOpen() {
const customMenu = SpreadsheetApp.getUi();
customMenu.createMenu('カスタムメニュー')
.addItem('データ統合', 'getAllData')
.addToUi()
}
「//メニュー追加」よりも下の部分がカスタムメニューの作成をしているコードです。
実行したい関数にはgetAllDataという名前をつけています。
「カスタムメニュー」という名前のメニューを追加し、「データ統合」のボタンを押すと、実行したい関数「getAllData」が呼び出されています。
まとめ
今回はGoogle Apps Scriptで、スプレッドシートにメニューを追加する方法を解説しました。
メニューにスクリプトの実行ボタンを追加しておけば、Google Apps Scriptを使ったことがない人でも簡単に操作できます。
また、自分でスクリプトを実行する場合も、スクリプトの作成画面を開かなくていいので、効率的です。
カスタムメニューをうまく活用すれば、Google Apps Scriptがより便利なものになります。