はじめに
こんなやつをスプレッドシートのカスタムメニューに追加して、いろんな便利系の処理ができるという話です。実際の処理は Google Apps Script (JavaScript) で書く必要があります。
手順
以下の手順( 1-2 分くらい)で拡張するところまでいけます。
1. スプレッドシートファイルを開く
Google Apps Script を使って特定の処理を行いたいスプレッドシートを開く。
2. ツール > スクリプトエディタ を選択
3. スクリプトのプロジェクト名を入力
Google Apps Script のスクリプトが開くので、 無題のプロジェクト の部分を選択して、プロジェクト名を入力。
ダイアログが出るのでプロジェクト名を入力して OK を選択。
4. メニューを追加するコードを書く(コピペ)
function onOpen() {
SpreadsheetApp
.getActiveSpreadsheet()
.addMenu('カレンダー連携', [
{name: '一括登録', functionName: 'registerAll'},
{name: '一括キャンセル', functionName: 'cancelAll'},
]);
}
function registerAll() {
// 処理を書く
}
function cancelAll() {
// 処理を書く
}
onOpen は、スプレッドシートを開いたときに呼びだされる、予約されたメソッド。 SpreadsheetApp.getActiveSpreadsheet() で連携しているスプレッドシートを取得する。 addMenu でメニューを追加している。addMenu の第 1 引数には追加するメニュー名、第 2 引数には、処理を走らせる関数名とサブメニューの名前を配列形式で指定する。
5. onOpen メソッドを実行
onOpen メソッドを実行、スクリプトに必要な許可を与える。
安全ではないページに移動(出ない場合はスキップ)。本当は安全なので気にしなくて大丈夫です;
6. スプレッドシートを確認
メニューが追加されていて、サブメニューが実行できれば OK!
次にやること
サクッとスプレッドシートにメニューを追加できました。あとは、それぞれのメソッドに実行したい処理を書きましょう。
実際の処理例は最後のセクションの関連記事をご参考ください。
グロービスのアドベントカレンダー で違う GAS ネタも書きました > 毎月 500 時間の社内ルーティンワークを GAS を使って自動化した話。こちらでも色んなサンプルを紹介してます。