Posted at

スプレッドシートにカスタムメニューを追加して、拡張機能を実装する方法


はじめに

スクリーンショット 2018-12-17 23.22.37.png

こんなやつをスプレッドシートのカスタムメニューに追加して、いろんな便利系の処理ができるという話です。実際の処理は Google Apps Script (JavaScript) で書く必要があります。


手順

以下の手順( 1-2 分くらい)で拡張するところまでいけます。


1. スプレッドシートファイルを開く

Google Apps Script を使って特定の処理を行いたいスプレッドシートを開く。


2. ツール > スクリプトエディタ を選択

スクリーンショット 2018-12-17 23.25.02.png

ツール > スクリプトエディタ を選択


3. スクリプトのプロジェクト名を入力

スクリーンショット 2018-12-17 23.32.35.png

Google Apps Script のスクリプトが開くので、 無題のプロジェクト の部分を選択して、プロジェクト名を入力。

スクリーンショット 2018-12-17 23.34.14.png

ダイアログが出るのでプロジェクト名を入力して 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 メソッドを実行、スクリプトに必要な許可を与える。

スクリーンショット 2018-12-17 23.58.30.png

関数を選択 > onOpen メソッドを選択

スクリーンショット 2018-12-17 23.58.41.png

▶ で実行

スクリーンショット 2018-12-18 0.00.22.png

許可を確認 を選択

スクリーンショット 2018-12-18 0.00.42.png

実行中のアカウントを選択

スクリーンショット 2018-12-18 0.00.48.png

この画面が出た場合は詳細を選択(出ない場合はスキップ)。

スクリーンショット 2018-12-18 0.00.57.png

安全ではないページに移動(出ない場合はスキップ)。本当は安全なので気にしなくて大丈夫です;

スクリーンショット 2018-12-18 0.01.10.png

許可を選択。


6. スプレッドシートを確認

スクリーンショット 2018-12-18 0.06.53.png

メニューが追加されていて、サブメニューが実行できれば OK!


次にやること

サクッとスプレッドシートにメニューを追加できました。あとは、それぞれのメソッドに実行したい処理を書きましょう。

実際の処理例は最後のセクションの関連記事をご参考ください。

グロービスのアドベントカレンダー で違う GAS ネタも書きました > 毎月 500 時間の社内ルーティンワークを GAS を使って自動化した話。こちらでも色んなサンプルを紹介してます。


関連記事